Simuler un client sur deux issues
Exercice supplémentaire · niveau 1 (application) · mathématiques (ECT 1re année), chapitre 13 — Informatique et algorithmique · Statistiques, bases et hasard
Énoncé
Un client sollicité accepte un rendez-vous avec la probabilité . En n'utilisant que rd.random(), écrire une fonction client() qui rend 1 en cas d'acceptation et 0 sinon, puis un script qui estime la fréquence d'acceptation sur essais.
Corrigé
Le principe. rd.random() rend un nombre au hasard entre et , chaque sous-intervalle ayant une probabilité égale à sa longueur. Le test rd.random() < 0.4 est donc vrai avec la probabilité exactement : c'est une épreuve de Bernoulli.
La fonction.
import numpy.random as rd
def client():
if rd.random() < 0.4:
return 1
return 0
Le script d'estimation. On additionne les résultats — qui valent ou — et l'on divise par le nombre d'essais :
n = 1000
s = 0
for i in range(n):
s = s + client()
print(s/n) # 0.408 par exemple
Ce que rend le script. Une fréquence proche de , différente à chaque exécution. La somme s compte les acceptations, donc s/n est bien leur fréquence.
Le point délicat. Une simulation ne démontre rien : elle donne une valeur approchée, qui varie. Avec essais on obtient typiquement entre et ; il faut augmenter pour resserrer, sans jamais atteindre exactement .
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.