Adloun

Simuler un dé, puis une somme

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

Énoncé

En n'utilisant que rd.random(), qui rend un nombre au hasard entre et , écrire une fonction de() qui simule un dé équilibré à six faces. Puis écrire un script qui estime, sur essais, la probabilité que la somme de deux dés vaille , et comparer à la valeur exacte.

Corrigé

La fonction. rd.random() tombe uniformément dans . En multipliant par , on obtient un nombre de ; sa partie entière vaut , , , , ou , chacune avec la même probabilité , puisque chacune correspond à un intervalle de longueur sur les . On ajoute pour obtenir les faces.

import numpy as np
import numpy.random as rd

def de():
    return np.floor(6*rd.random()) + 1

L'estimation.

n = 10000
s = 0
for i in range(n):
    if de() + de() == 7:
        s = s + 1
print(s/n)
# environ 0.167

La valeur exacte. Les deux dés donnent couples également probables. La somme vaut pour , , , , et , soit couples :

La fréquence observée s'en approche à quelques millièmes près, ce qui est l'ordre de précision qu'on peut espérer de essais : deux décimales fiables, pas davantage.

Le point à retenir. Toute loi uniforme sur des entiers se fabrique à partir de rd.random() par une multiplication et une partie entière : c'est le seul générateur exigible, et il suffit. La borne haute est exclue, la borne basse incluse — d'où le + 1 qui ramène les faces de à .

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.