Incohérences de génération de nombres aléatoires : Random.Next
sorties identiques
Cet article aborde un problème courant en C# où plusieurs instances d'une classe, chacune utilisant Random.Next()
, produisent la même séquence de nombres aléatoires. Ce comportement apparemment contradictoire se produit lorsque plusieurs Random
objets sont instanciés en succession rapide.
La cause première est le mécanisme d'amorçage par défaut de la classe Random
. Il utilise l'horloge système comme graine. Si plusieurs Random
objets sont créés dans un laps de temps très court, ils reçoivent des valeurs de départ presque identiques, conduisant à des séquences de nombres "aléatoires" identiques.
La solution est simple : au lieu de créer un nouvel objet Random
pour chaque instance, créez un seul objet Random
et réutilisez-le dans toutes les instances. Cette instance unique générera une séquence unique de nombres aléatoires, résolvant ainsi le problème des sorties identiques. Passez cet objet Random
partagé en paramètre au constructeur de la classe.
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!