random.choice est-il équitable ?
Exercice supplémentaire · niveau 3 (difficile) · sciences numériques et technologie (seconde), chapitre 7 — Projets et mini-jeux · Pierre-feuille-ciseaux
Énoncé
Éprouver random.choice sur tirages parmi trois valeurs : relever les trois effectifs, l'écart au tiers attendu, et dire si l'écart observé est compatible avec le hasard.
Corrigé
import random
choix = ["pierre", "feuille", "ciseaux"]
e = {c: 0 for c in choix}
N = 300000
for i in range(N):
e[random.choice(choix)] += 1
for c in choix:
print(c, e[c], round(e[c]/N - 1/3, 5))
Les trois effectifs tournent autour de , avec des écarts de quelques centaines.
Comment juger. L'écart-type d'un tel comptage vaut . Des écarts de quelques centaines sont donc exactement ce qu'on attend ; c'est un résultat trop parfait qui devrait inquiéter.
La leçon dépasse le générateur : une mesure aléatoire ne se juge pas à sa proximité de la valeur théorique, mais à sa distance rapportée à la fluctuation normale. Sans cette échelle, on ne peut rien conclure — ni « c'est biaisé », ni « c'est bon ».
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.