Simulation d'expériences aléatoires avec random.randint en Python
Seconde générale · Mathématiques 2nde
À retenir
• Importation obligatoire : from random import randint. • Fonction randint(a, b) : Renvoie un entier k aléatoire tel que a k b inclus. • Simulation d'un dé à 6 faces : de = randint(1, 6). • Simulation d'un lancer de pièce équilibrée : piece = randint(0, 1) (par exemple 0 pour Pile, 1 pour Face). • Compteur de succès : Incrémenter un compteur succes += 1 chaque fois que l'issue favorable apparaît, puis calculer la fréquence succes / N.
Le cours
La simulation informatique permet de reproduire des milliers de tirages aléatoires en quelques millisecondes afin d'observer la convergence des fréquences vers la probabilité théorique. En Python, la fonction randint(a, b) du module random simule un tirage équiprobable d'un entier entre a et b inclus. 1. La fonction randint Après from random import randint, l'appel randint(a, b) renvoie un entier au hasard entre a et b, les deux bornes incluses. Les b - a + 1 entiers possibles sont équiprobables, de probabilité 1/b - a + 1 chacun. Dé : randint(1, 6) (6 issues, probabilité 1/6 chacune). Pièce : randint(0, 1), en codant par exemple 1 pour Pile et 0 pour Face. 2. Simuler un événement de probabilité donnée Une urne contient 3 boules rouges et 7 bleues. On numérote les boules de 1 à 10 et l'on convient que les numéros 1, 2, 3 sont les rouges : le test randint(1, 10) <= 3 est vrai avec la probabilité 3/10. from random import randint def frequence_rouge(n): rouges = 0 for i in range(n): if randint(1, 10) <= 3: rouges = rouges + 1 return rouges / n La fonction répète n tirages avec remise, compte les rouges et renvoie la fréquence observée, qui se rapproche de 0,3 quand n devient grand. 3. Attention Chaque appel de randint produit un nouveau tirage : écrire 2 * randint(1, 6) ne simule pas deux dés, mais un seul dé dont on double le résultat.
Dans ce chapitre
- Notion de variable et calculs dans un algorithme
- Conditions Si/Alors et boucles de répétition
- Algorithmes séquentiels et blocs d'instructions de Troisième
- Variables, affectation et types fondamentaux
- Opérateurs arithmétiques entiers et comparaisons en Python
- Instructions conditionnelles if, elif, else
- Boucle bornée for et fonction range
- Boucle non bornée while et recherche de seuil
- Accumulateur et calcul d'une somme ou d'un produit dans une boucle
- Définition et appel de fonctions en Python
- Listes et parcours de séquences en Python
- Recherche du maximum ou du minimum dans une liste en Python
- Simulation d'expériences aléatoires avec random.randint en Python
- Bilan : Synthèse et simulation d'algorithmes en Python