Randomness and simulation · Aléatoire et simulation
What we'll do
- Some programs need chance, like games or experiments.
- Python can make random numbers for us.
- We will also build a tiny simulation (a model of something real).
Ce que nous allons faire
- Certains programmes ont besoin de hasard, comme les jeux ou les expériences.
- Python peut générer des nombres aléatoires pour nous.
- Nous construirons aussi une toute petite simulation (un modèle de quelque chose de réel).
Import random
- The random tools live in a module named
random. - Write
import randomat the top of your program. - Then you can use its functions, like
random.randint.
Importer random
- Les outils aléatoires vivent dans un module nommé
random. - Écrivez
import randomau début de votre programme. - Ensuite, vous pouvez utiliser ses fonctions, comme
random.randint.
import random
number = random.randint(1, 6)
print(number)
random.randint(a, b)
random.randint(a, b)gives a whole number fromatob.- Both ends are included:
randint(1, 6)can be1,6, or anything between. - Run it again and you may get a different number.
random.randint(a, b)
random.randint(a, b)donne un nombre entier deaàb.- Les deux extrémités sont incluses :
randint(1, 6)peut être1,6, ou tout ce qui est entre. - Exécutez-le encore et vous pourrez obtenir un nombre différent.
import random
for i in range(3):
print(random.randint(1, 6))
Same numbers with a seed
- A seed sets the random start point.
- With the same seed, you get the same numbers every time.
- This is useful for testing, so results can be repeated.
Mêmes nombres avec un seed (graine)
- Un seed définit le point de départ aléatoire.
- Avec le même seed, vous obtenez les mêmes nombres à chaque fois.
- C'est utile pour les tests, afin que les résultats puissent être reproduits.
import random
random.seed(42)
print(random.randint(1, 6))
print(random.randint(1, 6))
A tiny simulation
- A simulation models a real process with code.
- Here we model flipping a coin many times and counting heads.
- Running many trials helps us see the long-run pattern.
Une toute petite simulation
- Une simulation modélise un processus réel avec du code.
- Ici, nous modélisons le lancer d'une pièce de monnaie de nombreuses fois et le comptage des faces.
- Exécuter de nombreux essais nous aide à voir le motif à long terme.
import random
random.seed(1)
heads = 0
for i in range(10):
flip = random.randint(0, 1) # 0 = tails, 1 = heads
if flip == 1:
heads = heads + 1
print(heads)
In AP CSP pseudocode
- The exam writes random numbers with
RANDOM. RANDOM(a, b)gives a whole number fromatob, the same idea asrandom.randint(a, b).
En pseudocode AP CSP
- L'examen écrit des nombres aléatoires avec
RANDOM. RANDOM(a, b)donne un nombre entier deaàb, la même idée querandom.randint(a, b).
roll ← RANDOM(1, 6)
DISPLAY(roll)
Common mistakes
- A simulation uses random values to model chance.
- Run it many times to see the overall pattern.
Erreurs courantes
- Une simulation utilise des valeurs aléatoires pour modéliser le hasard.
- Exécutez-le de nombreuses fois pour voir le motif global.
Now you try
- Some tasks check a property (like "the roll is between 1 and 6").
- Some tasks use a seed so the output is the same every time.
- Press Check answer to test your code.
À vous maintenant
- Certaines tâches vérifient une propriété (comme "le dé est entre 1 et 6").
- Certaines tâches utilisent un seed pour que la sortie soit la même à chaque fois.
- Appuyez sur Vérifier la réponse pour tester votre code.
Write roll_die() (no parameters) that returns · rendements a random whole number from 1 to 6 using random.randint. Remember import random. · Écrivez roll_die() (sans paramètre) qui retourne un nombre entier aléatoire de 1 à 6 en utilisant random.randint. Rappelez-vous import random.
Click Run to see the output here. · Cliquez sur Exécuter pour voir le résultat ici.
Write roll_two() that rolls two dice (each 1 to 6) and returns · rendements their total. The total is always between 2 and 12. · Écrivez roll_two() qui lance deux dés (chacun de 1 à 6) et retourne leur total. Le total est toujours entre 2 et 12.
Click Run to see the output here. · Cliquez sur Exécuter pour voir le résultat ici.
Copy this exactly: set random.seed(7), then flip a coin 20 times with random.randint(0, 1) (1 means heads), count the heads, and print the count. With this seed the answer is always the same. · Copiez ceci exactement : définissez random.seed(7), puis lancez une pièce de monnaie 20 fois avec random.randint(0, 1) (1 signifie face), comptez les faces, et print le compteur. Avec cette graine, la réponse est toujours la même.
Click Run to see the output here. · Cliquez sur Exécuter pour voir le résultat ici.