Génération de nombres aléatoires avec graine en Java
Lors de la génération de nombres aléatoires, il est courant d'utiliser une graine pour garantir la reproductibilité des résultats. Cependant, dans les cas où des nombres apparemment identiques sont produits, un dépannage est nécessaire.
Dans le code fourni :
double randomGenerator(long seed) { Random generator = new Random(seed); double num = generator.nextDouble() * (0.5); return num; }
L'utilisation cohérente de la même graine entraînera des séquences de nombres identiques. Il s'agit d'un aspect crucial des tests, permettant un caractère aléatoire contrôlé lors de la reproduction des résultats.
Pour résoudre le problème et générer des séquences variables, utilisez le constructeur sans argument pour Random, qui exploite l'horodatage nanoseconde pour initialiser une graine unique. . Par exemple :
private Random generator = new Random(); double randomGenerator() { return generator.nextDouble() * 0.5; }
En conservant l'instance Random en dehors de la méthode, l'état de départ interne reste persistant, fournissant une séquence distincte pour chaque invocation. Cette approche garantit un véritable caractère aléatoire tout en répondant au besoin de séquences de nombres uniques.
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!