sciences numériques et technologie (seconde) · Chapitre 6 · Exercice de TD
Trois piles de suite
Listes et simulations aléatoires · Le module random et les simulations · niveau 3 (difficile)
Énoncé
On lance une pièce jusqu'à obtenir trois « pile » consécutifs.
- Écrire une fonction
une_partie()renvoyant le nombre de lancers nécessaires. - Écrire
duree_moyenne(N)estimant le nombre moyen de lancers surNparties. - Estimer cette moyenne, puis comparer à la valeur théorique .
Corrigé
1.
import random
def une_partie():
lancers = 0
consecutifs = 0
while consecutifs < 3:
lancers = lancers + 1
if random.randint(0, 1) == 1: # 1 = pile
consecutifs = consecutifs + 1
else:
consecutifs = 0 # tout est à refaire
return lancers
Le else est le cœur de l'exercice : un « face » ne fait pas perdre un point, il remet le compteur à zéro. C'est ce qui rend le problème bien plus long qu'on ne l'imagine.
2. et 3.
def duree_moyenne(N):
total = 0
for partie in range(N):
total = total + une_partie()
return total / N
print(duree_moyenne(100000)) # environ 14.0
On trouve bien une moyenne voisine de , ce qui surprend souvent : on attend spontanément une valeur proche de .
L'intuition fautive consiste à penser qu'il suffit d'attendre le bon paquet de trois. En réalité, chaque échec détruit tout le progrès accompli. La valeur exacte est , et la même formule donne pour piles consécutifs — soit lancers pour six piles de suite.
Une boucle while s'imposait ici : le nombre de lancers est précisément l'inconnue.
100 % gratuit
Essaie le suivant avec le tuteur
- L'exercice suivant avec le tuteur, sans compte : il guide pas à pas, sans donner la réponse
- 14 autres exercices corrigés dans ce chapitre, et 23 à chercher avec le tuteur
- Les 2 QCM du chapitre, le premier sans compte
- Le podcast et la vidéo du chapitre et la correction filmée du TD : 2 minutes sans compte
Sans compte : le cours, le premier QCM, 2 minutes de podcast et de vidéo et un exercice avec le tuteur. Pour tout le reste : inscription gratuite en 30 secondes, sans carte bancaire.