Bonjour à tous,
j'aimerais connaître la différence entre utiliser un random() directement comme cela et lui rajouter en paramètre un long. Je ne comprends pas très bien à quoi sert le long mis en paramètre ?
Merci d'avance !
Bonjour à tous,
j'aimerais connaître la différence entre utiliser un random() directement comme cela et lui rajouter en paramètre un long. Je ne comprends pas très bien à quoi sert le long mis en paramètre ?
Merci d'avance !
Bonjour,
L'appel comme ceci :
permet de toujours retrouver la même suite de nombre aléatoire. Tu peux test ça :
Code : Sélectionner tout - Visualiser dans une fenêtre à part Random rnd = new Random(long Seed)
Tu retrouveras toujours les mêmes nombres en sortie.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Random rnd = new Random(1); for (int i = 0; i < 10; i++) { System.out.println(rnd.nextInt()); }
En gros comme je comprends, l'aléatoire n'existe pas vraiment, c'est juste une suite de nombre prévu pour sortir dans l'ordre. Ce qui compte c'est à quelle "seed" est créé ton objet Random.
Si tu veux seulement tirer des nombres aléatoire oublie la "seed". Mais cette méthode est utile pour le debug, comme ca tu peux enlever l'aléatoire du test et retrouver les mêmes valeurs à chaque test.
J'espère que j'ai été assez clair![]()
Pour completer ce qu'a dit jejelenew,
La "seed" (graine) est le nombre qui de base que va utiliser l'algorithme de génération de nombre pseudo-aléatoire. En effet on ne sait pas faire du vrai aléatoire, du coup on utilise un algotihme qui crée un sensation d'aléatoire.
Mais ce n'est qu'une illusion, si tu utilise la même seed, tu retrouvera la même suite de nombre.
Pour créer un aléatoire plus réaliste, il faut changer de seed à chaque fois. Le plus simple est d'utiliser Random() car l'appelle de ce constructeur fait appelle à Random(long seed) mais en utilisant le temps en milliseconde comme seed.
Ainsi la seed est tout le temps différente, et donc on se retrouve avec des résultats en tout point similaire à de l'aléatoire.
Le plus simple et efficace est donc d'utiliser Random()
Merci de vos réponses ! J'y vois plus clair maintenant![]()
Partager