Les expériences aléatoires - Maxicours

Les expériences aléatoires

Objectifs
  • 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.
Points clés
  • 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).
Pour bien comprendre
  • Variables numériques
  • Affectation d’une variable
  • Instruction de sortie
  • Instruction if
  • Boucle for
  • Boucle while 
  • Fonction prédéfinie
1. Génération aléatoire d'un nombre
a. Les expériences aléatoires

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 »).

b. Rappel sur les fonctions prédéfinies

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.

Pour simplifier la programmation, une liste de programmes a été prédéfinie. Ainsi, pour appeler le programme donnant l’arrondi, on utilise la fonction round(a). Une fonction prédéfinie est un objet informatique qui appelle un programme déjà existant.
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
c. Génération d'un nombre entier
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).
Exemple 1
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.
Exemple 2
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.
Remarque
Avec une boucle, on peut générer plusieurs expériences de façon répétée.
d. Génération d'un nombre décimal
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).
Exemple
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.
Remarque
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].
2. Exemples de programmes
a. Expériences répétées avec une boucle for

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.
b. Expériences répétées avec une boucle while

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 déjà mis une note à ce cours.

Découvrez les autres cours offerts par Maxicours !

Découvrez Maxicours

Comment as-tu trouvé ce cours ?

Évalue ce cours !

 

Des profs en ligne

quote blanc icon

Découvrez Maxicours

Exerce toi en t’abonnant

Fiches de cours les plus recherchées

Mathématiques complémentaires

Intégrales et primitives

Mathématiques complémentaires

Espérance et variance d'une loi à densité

Mathématiques complémentaires

Limite infinie d'une fonction en un point

Mathématiques complémentaires

La notion de limite de suite

Mathématiques complémentaires

Au programme !

Mathématiques complémentaires

La somme des termes d'une suite géométrique

Des profs en ligne

  • 6j/7 de 17 h à 20 h
  • Par chat, audio, vidéo
  • Sur les matières principales

Des ressources riches

  • Fiches, vidéos de cours
  • Exercices & corrigés
  • Modules de révisions Bac et Brevet

Des outils ludiques

  • Coach virtuel
  • Quiz interactifs
  • Planning de révision

Des tableaux de bord

  • Suivi de la progression
  • Score d’assiduité
  • Un compte Parent