Adloun

mathématiques appliquées (ECG 1re année) · Chapitre 11 · Exercice

Simuler deux dés, et comparer

Informatique et algorithmique · Simulation et données · niveau 2

Énoncé

Simuler lancers de deux dés et comparer la fréquence de chaque somme à sa probabilité théorique. Tracer les deux sur un même diagramme en bâtons.

Corrigé


import numpy.random as rd
import matplotlib.pyplot as plt

def simuler(tirages=100000):
    effectifs = {s: 0 for s in range(2, 13)}
    for _ in range(tirages):
        s = rd.randint(1, 7) + rd.randint(1, 7)
        effectifs[s] += 1
    return {s: effectifs[s] / tirages for s in effectifs}

sommes = list(range(2, 13))
theorique = {s: (6 - abs(s - 7)) / 36 for s in sommes}
empirique = simuler()

plt.bar([s - 0.2 for s in sommes], [empirique[s] for s in sommes],
        width=0.4, label="frequences simulees")
plt.bar([s + 0.2 for s in sommes], [theorique[s] for s in sommes],
        width=0.4, label="probabilites theoriques")
plt.xlabel("somme des deux des"); plt.legend(); plt.show()

Ce qu'on voit : deux profils triangulaires qui se superposent, avec un maximum en () et des extrémités à .

L'écart attendu. Chaque fréquence a un écart-type de ; pour et , cela vaut . Les différences observées sont de cet ordre — les constater ne signale aucune erreur.

Une erreur classique à éviter : tirer une somme directement par random.randint(2, 12) donnerait une loi uniforme, où serait aussi fréquent que . Il faut simuler les deux dés séparément, parce que c'est le nombre de façons d'obtenir chaque somme qui fait le triangle.

Exercices semblables

Le cours du chapitre · Tous les exercices du chapitre