Maison >développement back-end >Golang >Pourquoi mon code Go continue-t-il à générer le même nombre aléatoire ?
Résoudre la génération répétitive de nombres aléatoires dans Go
Dans Go, la fonction rand.Intn(n int) int renvoie un entier pseudo-aléatoire dans la plage [0, n). Cependant, vous avez rencontré un problème où il imprime le même nombre de manière cohérente.
La documentation suggère que rand.Intn utilise la source par défaut, qui génère une séquence déterministe de valeurs. Pour personnaliser le comportement et garantir le caractère aléatoire, vous devez correctement amorcer la génération de nombres aléatoires.
Pour amorcer le générateur de nombres aléatoires, appelez la fonction rand.Seed(seed int64). Cette fonction initialise la source par défaut avec une valeur de départ. Une pratique courante consiste à utiliser l'horodatage Unix actuel :
<code class="go">rand.Seed(time.Now().UnixNano())</code>
En amorceant le générateur, vous vous assurez que chaque exécution de votre programme produit des nombres aléatoires différents.
Si rand.Seed() n'est pas appelé, le générateur agit comme s'il était amorcé par 1, conduisant à la répétition observée.
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!