Adloun

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.