Le hasard en Scratch : simuler une expérience aléatoire
Créez un compte gratuit pour suivre votre avancement et reprendre où vous avez laissé.
Créer un compteCe tuto fait suite à Si… alors : les conditions. Jusqu'à présent, tous nos programmes étaient déterministes : à chaque exécution, ils faisaient exactement la même chose. On va maintenant introduire du hasard grâce à un bloc qui tire un nombre au sort, puis s'en servir pour simuler des expériences aléatoires (dé, pièce) et compter des fréquences — le lien direct avec le chapitre Probabilités de 4e.
Le bloc « nombre aléatoire »
Dans la catégorie Opérateurs (vert), un bloc rond renvoie un nombre tiré au hasard entre deux bornes (bornes incluses) :
| nombre aléatoire entre … et … | Renvoie un entier tiré au hasard entre les deux bornes (par défaut, le résultat est un entier ; il devient décimal si l'une des bornes est décimale) |
Comme tout bloc rond, on peut le glisser à la place d'une valeur dans n'importe quel bloc à champ rond : dire, avancer de, mettre … à, etc.
Trois tirages successifs
Le programme ci-dessous fait tirer trois nombres au chat entre $1$ et $6$. À chaque clic sur le drapeau vert, les trois nombres affichés sont différents (sauf coïncidence) : c'est ce qui distingue un programme aléatoire d'un programme déterministe.
Remarque
Le hasard de Scratch est en réalité pseudo-aléatoire : un algorithme produit une suite de nombres qui ressemble à du hasard, mais qui est reproductible si on connaît la « graine ». Pour nos simulations de 4e, on peut tout à fait considérer que les tirages sont équiprobables et indépendants.
Simuler un lancer de dé
Un dé équilibré à six faces correspond exactement à un tirage uniforme entre $1$ et $6$. Le programme tient en deux blocs.
Lancer un dé
On stocke le résultat dans une variable dé (réutilisable plus loin) plutôt que de l'écrire directement dans le bloc dire : ainsi, plusieurs blocs du programme peuvent se référer à la même valeur sans la retirer au sort à chaque fois.
?

Pile ou face
Pour simuler une pièce, on tire un entier entre $1$ et $2$ : on convient que $1$ représente pile et $2$ représente face. La traduction du nombre vers le texte se fait avec une instruction conditionnelle (cf. tuto précédent).
Un tirage pile/face
?

Remarque
On peut aussi tirer entre $0$ et $1$ (deux valeurs équiprobables) puis tester $\text{tirage} = 0$. Le choix entre $\{1;2\}$ et $\{0;1\}$ n'a aucune incidence sur la probabilité — c'est juste une convention de codage.
Compter sur 100 lancers
Un lancer isolé donne très peu d'information : on observe « pile » ou « face », c'est tout. Pour qu'apparaisse la régularité statistique, il faut répéter l'expérience et compter. On utilise deux variables compteurs (cf. tuto Variables), initialisées à $0$, puis incrémentées dans une boucle répéter 100 fois.
100 lancers de pièce
À la fin de la boucle, nbPile + nbFace vaut toujours exactement $100$ : chaque lancer alimente l'un des deux compteurs, jamais les deux. La dernière ligne affiche la fréquence de pile, c'est-à-dire $\dfrac{\text{nbPile}}{100}$.
?

Fréquence et probabilité
En relançant plusieurs fois le programme précédent (et en faisant varier le nombre de répétitions), on obtient des résultats du type :
| Nombre de lancers | nbPile | Fréquence de pile |
|---|---|---|
| $10$ | $7$ | $0{,}70$ |
| $100$ | $52$ | $0{,}52$ |
| $1\,000$ | $497$ | $0{,}497$ |
| $10\,000$ | $4\,983$ | $0{,}4983$ |
Plus le nombre de lancers augmente, plus la fréquence de pile se rapproche de $0{,}5 = \dfrac{1}{2}$. Cette valeur $\dfrac{1}{2}$ est la probabilité d'obtenir pile pour une pièce équilibrée : elle est calculée a priori (avant toute expérience), alors que la fréquence est observée a posteriori (après une série de tirages).
Remarque
Cette stabilisation de la fréquence autour de la probabilité s'appelle la loi des grands nombres. C'est ce qui justifie qu'on puisse estimer une probabilité par une fréquence quand on n'a pas accès au calcul théorique (par exemple si on ne sait pas si une pièce est équilibrée). Pour approfondir, voir le cours Fréquence et probabilité.
Récapitulatif
| Bloc | Effet |
|---|---|
| nombre aléatoire entre a et b | Renvoie un entier tiré au hasard entre $a$ et $b$ (bornes incluses) |
| … / … | Divise deux valeurs (calcul d'une fréquence : $\text{nbPile}/100$) |
| mettre … à et ajouter à … 1 | Initialiser un compteur à $0$, puis l'incrémenter à chaque tirage favorable (cf. tuto Variables et compteurs) |
À toi de jouer
Écrire un programme qui simule $100$ lancers d'un dé équilibré à $6$ faces et qui compte le nombre de « 6 » obtenus. À la fin, le programme doit afficher la fréquence d'apparition du $6$. Comparer ce résultat à la probabilité théorique $\dfrac{1}{6} \approx 0{,}167$.
Corrigé
On initialise un compteur nbSix à $0$, on lance la boucle $100$ fois, on tire à chaque tour un entier entre $1$ et $6$, et on incrémente le compteur uniquement si le tirage vaut $6$ — un simple si … alors suffit (pas besoin de sinon).
- En lançant le programme une première fois, on peut obtenir par exemple nbSix = 14, donc une fréquence de $0{,}14$.
- En relançant plusieurs fois, la fréquence varie : $0{,}19$, $0{,}15$, $0{,}21$… autour de la valeur théorique $\dfrac{1}{6} \approx 0{,}167$.
- En augmentant le nombre de lancers à $1\,000$ (changer le $100$ en $1\,000$ dans la boucle), la fréquence se rapproche encore davantage de $\dfrac{1}{6}$.
?
Astuce
Projet tout-en-un — Le fichier ci-dessous regroupe les programmes du tuto : lancer un dé (touche d), un tirage pile/face (touche p), 100 lancers pile/face avec fréquence (touche f) et 100 lancers de dé en comptant les six (touche s). Ouvrir le projet dans Scratch avec Fichier > Importer depuis votre ordinateur.
?
Remarque
Avec les nombres aléatoires et les boucles, on peut générer des motifs imprévisibles : rosaces à angles variables, dispersions de points, mosaïques. C'est le sujet du prochain chapitre, Boucles imbriquées, dédié aux scripts de motifs des sujets de brevet.