Le générateur de nombres aléatoires Java renvoie toujours le même numéro malgré la graine
Dans le code Java fourni, malgré la définition d'une graine, le générateur de nombres aléatoires est systématiquement donne le même nombre. Le problème survient lors de la création d'un nouvel objet Random pour chaque appel de méthode. Cela garantit qu'une nouvelle graine est générée à chaque fois, ce qui entraîne la répétition de nombres aléatoires.
Pour résoudre ce problème, il est essentiel de partager une seule instance aléatoire dans toute la classe. En incorporant ce changement, nous garantissons que la graine n'est définie qu'une seule fois, conduisant à une séquence de nombres véritablement aléatoires.
public class Numbers { // Shared Random instance private Random randnum = new Random(); public int random(int i) { randnum.setSeed(123456789); return randnum.nextInt(i); } }
Avec cette modification, les appels ultérieurs à la méthode aléatoire renverront des nombres différents, adhérant à les contraintes d'avoir une graine fixe.
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!