Les générateurs aléatoires
Comment un ordinateur fabrique du hasard : graine, générateur congruentiel linéaire et période, simulation d'une loi à partir d'un nombre uniforme, et pourquoi la simulation et la sécurité n'emploient pas le même générateur.
- 30 cartes
- 7 thèmes
- Gratuit
Le programme, thème par thème
Le poids de chaque thème suit celui que lui donne l'examen.
- Notions
- Questions
- Ranger et relier
- Les chiffres
- Les étapes
- Mises en situation
- Comprendre
Quelques cartes du deck
Générateur pseudo-aléatoire : de quoi s'agit-il ?
Voir la réponse
Algorithme déterministe qui produit une suite de nombres dont les propriétés statistiques ressemblent à celles du hasard.
Rien n'y est vraiment aléatoire : tout est calculé à partir d'un état interne. C'est ce qui rend les simulations reproductibles, et ce qui interdit de l'employer pour des secrets.
Que ce script affiche-t-il ?
```python
import random
random.seed(7)
a = random.randint(1, 6)
random.seed(7)
b = random.randint(1, 6)
print(a == b)`TrueFalseNoneTrueune fois sur six seulement
Voir la réponse
TrueRéinitialiser la même graine remet le générateur dans le même état, donc random.randint donne la même valeur : a == b est toujours True, quelle que soit la valeur de a.
Pour simuler une loi par …, on tire u uniforme entre 0 et 1 et on calcule l'inverse de la fonction de … en u.
Voir la réponse
Pour simuler une loi par inversion, on tire u uniforme entre 0 et 1 et on calcule l'inverse de la fonction de répartition en u.
Si F est la fonction de répartition, F⁻¹(u) a la loi voulue : u tombe sous F(x) avec la probabilité F(x), exactement comme X ≤ x.
Graine : de quoi s'agit-il ?
Voir la réponse
Valeur de départ d'un générateur pseudo-aléatoire : la même valeur initiale redonne exactement la même suite.
Fixer la graine rend une expérience rejouable, utile pour déboguer et comparer ; la laisser varier (par exemple selon l'heure) donne des suites différentes.