Le hasard en Scratch (4e) Tuto

Le hasard en Scratch : simuler une expérience aléatoire

Durée estimée
5 minutes
Votre progression

Créez un compte gratuit pour suivre votre avancement et reprendre où vous avez laissé.

Créer un compte

Ce 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.

Programme Scratch tirant et disant trois nombres aléatoires entre 1 et 6 séparés par une seconde d'attente

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é

Programme Scratch simulant un lancer de dé à six faces et affichant le résultat

On stocke le résultat dans une variable (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.

Projet : lancer un dé .sb3
?
Ouvre-le dans Scratch en ligne via Fichier → Importer depuis votre ordinateur.

Scène Scratch montrant le chat avec une bulle affichant le résultat 5 d'un lancer de dé

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

Programme Scratch tirant un nombre entre 1 et 2 et disant pile ou face selon le résultat

Projet : pile ou face .sb3
?
Ouvre-le dans Scratch en ligne via Fichier → Importer depuis votre ordinateur.

Scène Scratch avec le chat affichant pile dans une bulle après un tirage aléatoire

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

Programme Scratch simulant 100 lancers d'une pièce avec deux compteurs nbPile et nbFace puis affichant la fréquence de pile

À 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}$.

Projet : 100 lancers et fréquence .sb3
?
Ouvre-le dans Scratch en ligne via Fichier → Importer depuis votre ordinateur.

Scène Scratch avec le chat affichant la fréquence 0.52 après 100 lancers

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

Programme Scratch simulant 100 lancers de dé et comptant les six obtenus puis affichant la fréquence
  1. En lançant le programme une première fois, on peut obtenir par exemple nbSix = 14, donc une fréquence de $0{,}14$.
  2. 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$.
  3. 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}$.

Projet : compter les six .sb3
?
Ouvre-le dans Scratch en ligne via Fichier → Importer depuis votre ordinateur.

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.

Projet tout-en-un .sb3
?
Ouvre-le dans Scratch en ligne via 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.