Python : Simulation de lancers de dés
Créez un compte gratuit pour suivre votre avancement et reprendre où vous avez laissé.
Créer un compteObjectifs travaillés
On souhaite simuler le lancer d'un dé équilibré à six faces à l'aide de Python.
Le module random fournit la fonction randint(a, b) qui renvoie un entier aléatoire compris (au sens large) entre $ a $ et $ b $.
Écrire une fonction lancer(), sans argument, qui simule le lancer d'un dé à six faces.
- Tester la fonction en l'exécutant plusieurs fois dans la console.
- Écrire une fonction somme_deux_des() qui simule le lancer de deux dés et renvoie la somme des deux faces obtenues. Quelles sont les valeurs possibles renvoyées par cette fonction ?
Écrire une fonction liste_lancers(n) qui renvoie la liste des résultats de $ n $ lancers successifs d'un dé.
- Indication : on pourra partir d'une liste vide L = [] et y ajouter chaque nouveau résultat avec L.append(...).
- En utilisant la fonction précédente, écrire un programme qui simule $ 1~000 $ lancers d'un dé et calcule la moyenne des résultats. Comparer cette moyenne avec l'espérance théorique $ \dfrac{1+2+3+4+5+6}{6} = 3{,}5 $.
Corrigé
On importe la fonction randint puis on l'utilise avec les bornes $ 1 $ et $ 6 $ :
from random import randint def lancer(): return randint(1, 6)L'appel lancer() renvoie un entier aléatoire parmi $ 1, 2, 3, 4, 5, 6 $.
On appelle deux fois la fonction randint et on additionne les résultats :
def somme_deux_des(): return randint(1, 6) + randint(1, 6)La plus petite somme possible est $ 1 + 1 = 2 $, la plus grande est $ 6 + 6 = 12 $. La fonction peut donc renvoyer tous les entiers de $ 2 $ à $ 12 $.
On utilise une boucle for pour ajouter $ n $ résultats à une liste initialement vide :
def liste_lancers(n): L = [] for i in range(n): L.append(randint(1, 6)) return LPar exemple, liste_lancers(5) peut renvoyer [3, 1, 6, 4, 2] (le résultat change à chaque exécution car il est aléatoire).
On calcule la moyenne avec sum et len :
L = liste_lancers(1000) moyenne = sum(L) / len(L) print(moyenne)On obtient une valeur proche de $ 3{,}5 $, par exemple $ 3{,}487 $ ou $ 3{,}521 $. Cette moyenne change à chaque exécution mais reste proche de l'espérance théorique : c'est une illustration de la loi des grands nombres.
Pour réviser : Importer et utiliser un module (math, random)