Maison > Article > développement back-end > Comment `random.seed()` garantit-il la même séquence de nombres aléatoires en Python ?
random.seed(), une fonction cruciale dans la génération de nombres aléatoires de Python, a semé une certaine confusion. Pour clarifier son rôle, examinons un exemple :
import random random.seed(9001) print(random.randint(1, 10)) # 1 print(random.randint(1, 10)) # 3 print(random.randint(1, 10)) # 6 print(random.randint(1, 10)) # 6 print(random.randint(1, 10)) # 7
Ce code produit systématiquement la même séquence de nombres aléatoires car random.seed() définit la valeur initiale du générateur de nombres pseudo-aléatoires.
Générateurs de nombres pseudo-aléatoires
Les générateurs de nombres pseudo-aléatoires s'appuient sur une valeur précédente pour générer les nombres suivants. Cependant, ils ont besoin d’une valeur initiale pour démarrer le processus. C'est là qu'intervient random.seed().
La fonction de random.seed()
random.seed() initialise le générateur de nombres aléatoires en fournissant un entier comme paramètre. Cet entier sert de graine, qui détermine la séquence de nombres qui sera générée.
Reproductibilité
L'utilisation de la même valeur de graine à chaque fois garantit que la même séquence de des nombres aléatoires sont générés. Ceci est utile pour les situations où la reproductibilité est souhaitée, telles que les tests et le débogage.
Applications
L'amorçage des générateurs de nombres aléatoires est souvent effectué lors de l'initialisation du programme. Il permet aux utilisateurs de spécifier une graine spécifique pour contrôler le caractère aléatoire et maintenir la cohérence entre les différentes exécutions. Par exemple, l'heure actuelle peut être utilisée comme graine pour générer des séquences uniques à chaque fois.
En comprenant le rôle de random.seed() dans la définition de la valeur initiale des générateurs de nombres pseudo-aléatoires, les développeurs peuvent exploiter la puissance du hasard tout en gardant le contrôle sur les séquences générées.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!