Adloun

Simuler un délai de livraison uniforme

Exercice d'entraînement · niveau 2 · mathématiques (ECT 1re année), chapitre 13 — Informatique et algorithmique · Simulation aléatoire

Énoncé

Le délai de livraison suit la loi uniforme sur jours. En n'utilisant que rd.random(), écrire une fonction delai() qui simule un délai, puis un script qui estime sur essais. Comparer à la valeur exacte.

Corrigé

La fonction. rd.random() rend un nombre au hasard entre et . Le multiplier par la longueur l'étale sur , et lui ajouter le décale sur :

import numpy.random as rd

def delai():
    return 5 + 15*rd.random()

Le script d'estimation. On compte les essais qui vérifient la condition, puis on divise par le nombre d'essais :

n = 10000
compte = 0
for i in range(n):
    if delai() <= 8:
        compte = compte + 1
print(compte/n)   # 0.1994 par exemple

La valeur exacte. Pour la loi uniforme sur , la probabilité ne dépend que de la longueur de l'intervalle :

La comparaison. La fréquence observée, environ , approche sans l'atteindre exactement, et elle change à chaque exécution. C'est normal : une simulation estime, elle ne démontre pas. Elle sert à détecter une erreur de modélisation — un résultat proche de signalerait, par exemple, un facteur oublié.

Le point délicat. Écrire 5 + 20*rd.random() donnerait des délais entre et jours. C'est la longueur de l'intervalle qui multiplie, et la borne de gauche qui s'ajoute.

Les autres exercices de ce chapitre Le cours du chapitre

Un blocage sur cet exercice ? Le tuteur d'Adloun guide par questions, sans donner la réponse.