Adloun

Simuler deux dés, et comparer

Exercice · niveau 2 · mathématiques appliquées (ECG 1re année), chapitre 11 — Informatique et algorithmique · Simulation et données

É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.

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.