Obtenir le résultat d'une expérience aléatoire à l'aide d'une fonction en langage Python
- Fiche de cours
- Quiz
- Profs en ligne
- Videos
- Application mobile
- Générer aléatoirement un nombre entier à l’aide de la fonction randint(a,b).
- Générer aléatoirement un nombre décimal à l’aide de la fonction uniform(a,b).
- Simuler une expérience aléatoire à partir de la génération aléatoire de nombres.
- En programmation, la simulation d’une
expérience aléatoire repose sur la
génération aléatoire de nombres.
Par exemple, pour simuler le lancer d’un dé équilibré à 6 faces, il suffit de générer aléatoirement un nombre entier compris entre 1 et 6. Ou, pour simuler le lancer d’une pièce de monnaie équilibrée, il suffit de générer aléatoirement 0 ou 1 (0 pour « pile », 1 pour « face »). - Pour générer aléatoirement un nombre entier compris entre a et b, il suffit de charger le module random avec la commande from random import* et d’utiliser la fonction prédéfinie randint(a,b).
- Pour générer aléatoirement un nombre décimal compris entre a et b, il suffit de charger le module random avec la commande from random import* et d’utiliser la fonction prédéfinie uniform(a,b).
- Variables numériques
- Affectation d’une variable
- Instruction de sortie
- Instruction if
- Boucle for
- Boucle while
- Fonction prédéfinie
En programmation, la simulation d’une
expérience aléatoire repose sur la
génération aléatoire de
nombres.
Par exemple, pour simuler le lancer d’un
dé équilibré à 6 faces, il
suffit de générer aléatoirement un
nombre entier compris entre 1 et 6. Ou, pour simuler le
lancer d’une pièce de monnaie
équilibrée, il suffit de
générer aléatoirement 0 ou 1 (0
pour « pile », 1 pour
« face »).
Par défaut, un langage de programmation ne peut effectuer que des opérations élémentaires (addition, soustraction…).
Pour déterminer, par exemple, l’arrondi d’un nombre, il faudrait au préalable rédiger un programme capable de donner cet arrondi. Ce serait long et fastidieux, d'autant que l’arrondi est une opération courante en mathématiques.
Fonction | Description | Exemple |
round(a) | Arrondi de a à l’entier le plus proche | |
round(a,b) | Arrondi de a avec b chiffres après la virgule | |
min(a,b) | Plus petit des nombres a et b | |
max(a,b) | Plus grand des nombres a et b |
Pour simuler le lancer d’un dé équilibré à 6 faces, on peut utiliser le programme suivant :
L1 : On importe le module random. L2 : On affiche un nombre entier compris entre 1 et 6, généré de façon aléatoire. |
De la même façon, on peut simuler le lancer d’une pièce de monnaie équilibrée (0 pour « pile », 1 pour « face ») :
L1 : On importe le module random. L2 : On affiche un nombre entier compris entre 0 et 1, généré de façon aléatoire. |
Avec une boucle, on peut générer plusieurs expériences de façon répétée.
On génère aléatoirement un nombre décimal compris entre 0 et 1 de la façon suivante :
L1 : On importe le module random. L2 : On affiche un nombre décimal compris entre 0 et 1, généré de façon aléatoire. |
Cette fonction est utile pour simuler des expériences dont les valeurs sont continues. Si un joueur lance une balle sans viser sur un terrain d’une longueur maximale de 10 m, la balle peut donc arriver à une distance comprise dans l’intervalle [0 ; 10].
On peut simuler une série de 10 « pile » (1) ou « face » (0).
L1 : On importe le module random. L2, L3 : On génère 10 fois de suite des 0 et des 1. |
On peut modifier le programme pour afficher le nombre de « pile » obtenus :
L1 : On importe le module random. L2 : On initialise le nombre de « pile » obtenus à 0. L3, L4, L5 : On génère 10 nombres entiers 0 ou 1. Si on obtient 1, on augmente le nombre de « pile » de 1. L6 : On affiche le nombre de « pile » obtenus à la fin. |
On peut écrire un programme qui s’arrête dès que le premier « pile » est obtenu :
L1 : On importe le module random. L2 : On initialise face_obtenue à 0 (« face »). L3, L4 : Tant que face_obtenue correspond à « face », on génère un autre nombre entier 0 ou 1. Dès qu’on obtient 1 (« pile »), la boucle s’arrête. L5 : print(face_obtenue) affiche toutes les faces obtenues ainsi que le premier « pile ». |
On peut aussi afficher le nombre de « face » obtenus avant le premier pile :
L1 : On importe le module random. L2 : On initialise face_obtenue à 0 (« face »). L3 : On initialise compteur à 0. L4, L5 : Tant que face_obtenue correspond à « face », on génère un autre nombre entier 0 ou 1. Dès qu’on obtient 1 (« pile »), la boucle s’arrête. L6 : À chaque passage dans la boucle, le compteur augmente de 1 (y compris lorsque le premier « pile » est obtenu). L7 : On affiche compteur – 1 (pour enlever le premier « pile » obtenu). |
On pourrait refaire cette expérience plusieurs fois et calculer le nombre moyen de 0 obtenus avant le premier 1. Les possibilités sont infinies.
Vous avez obtenu75%de bonnes réponses !