Maison  >  Article  >  Java  >  Pourquoi mon générateur de nombres aléatoires Java renvoie-t-il toujours le même nombre malgré la définition d'une graine ?

Pourquoi mon générateur de nombres aléatoires Java renvoie-t-il toujours le même nombre malgré la définition d'une graine ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-07 07:11:02612parcourir

Why Does My Java Random Number Generator Always Return the Same Number Despite Setting a Seed?

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Article précédent:Somme courante du tableauArticle suivant:Somme courante du tableau