Maison > Article > développement back-end > Comment `random.seed()` garantit-il un caractère aléatoire prévisible en Python ?
Comprendre le rôle de random.seed() en Python
En Python, random.seed() initialise l'état interne du pseudo -générateur de nombres aléatoires (PRNG) utilisé par le module aléatoire. Ceci est crucial à comprendre si vous souhaitez l'utiliser efficacement dans vos programmes Python.
Comment fonctionne random.seed() ?
Les PRNG fonctionnent en construisant une séquence de nombres basés sur une valeur initiale connue sous le nom de « graine ». Chaque numéro suivant est calculé en utilisant le numéro précédent dans la séquence. Lorsque vous utilisez le module random pour la première fois, une graine par défaut est générée, mais vous pouvez utiliser random.seed() pour spécifier une valeur de graine spécifique, vous permettant ainsi de reproduire des séquences de nombres aléatoires de manière cohérente.
Exemple :
L'extrait de code Python suivant montre comment l'amorçage influence la séquence de nombres aléatoires générés par random.randint() :
import random # Seed the random number generator with the value 9001 random.seed(9001) # Generate five random numbers between 1 and 10 print(random.randint(1, 10)) print(random.randint(1, 10)) print(random.randint(1, 10)) print(random.randint(1, 10)) print(random.randint(1, 10))
Sortie :
1 3 6 6 7
Dans cet exemple, amorcer le PRNG avec 9001 garantit que les entiers aléatoires suivants sont générés de manière cohérente sous la forme [1, 3, 6, 6, 7]. Cette séquence spécifique sera reproduite à chaque fois que le code est exécuté avec la même valeur de départ.
Pourquoi utiliser random.seed() ?
Pour des séquences prévisibles de nombres aléatoires , comme générer un ensemble cohérent de données de test, random.seed() est utile. De plus, il vous permet de reproduire des résultats spécifiques dans plusieurs exécutions de programme à des fins de débogage.
En général, il est recommandé de définir une valeur de départ qui change à chaque exécution de programme, comme l'heure actuelle, pour générer une valeur véritablement aléatoire. séquence. Cela garantit que le PRNG est initialisé avec une graine unique à chaque fois que le code est exécuté.
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!