Question en JAVA
Résolu/Fermé
ziedzico
Messages postés
393
Date d'inscription
mercredi 5 mars 2008
Statut
Membre
Dernière intervention
12 avril 2014
-
9 févr. 2010 à 19:38
Gweltaz - 9 févr. 2010 à 21:21
Gweltaz - 9 févr. 2010 à 21:21
A voir également:
- Question en JAVA
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel football - Télécharger - Jeux vidéo
- Java apk - Télécharger - Langages
- Java décompiler - Télécharger - Langages
- Jeux java itel - Forum Mobile
2 réponses
Pacorabanix
Messages postés
3248
Date d'inscription
jeudi 23 août 2007
Statut
Membre
Dernière intervention
19 mai 2013
661
9 févr. 2010 à 20:11
9 févr. 2010 à 20:11
bonjour,
Les nombres "aléatoires" en informatique sont pseudo-aléatoires en fait.
Ils sont donnés par des algorithmes très précis, des formules, qui donnent une séquence de nombres qui a apparemment l'air aléatoire (et qui possèdent certaines propriétés statistiques qu'on peut attendre de nombres aléatoires, comme une moyenne centrée, une distribution de probabilité uniforme ou normale, etc... )
Ces algorithmes ont besoin d'un nombre pour commencer la série de nombres "aléatoires" à retourner. On appelle ce nombre de départ la "graine" (Seed en anglais).
comme dit dans le manuel java : http://java.sun.com/j2se/1.4.2/docs/api/java/util/Random.html#Random%28%29
lorsque tu appelles le constructeur Random() sans argument, alors par défaut c'est le temps système ( à la milliseconde près) qui est utilisé comme graine. (la deuxième version que tu as donnée est donc parfaitement inutile)
Sinon tu peux spécifier toi-même la graine. new Random(23) par exemple. Ceci fait que tu obtiendras exactement les mêmes séries de nombres "aléatoires" lors de chaque utilisation de ton programme. Ceci n'est en général pas voulu, mais peut-être est-ce une bonne idée de le faire pour pouvoir déboguer ton programme correctement : si tu as toujours les mêmes nombres c'est n peu moins le bazar lorsque tu cherches à repérer une erreur.
Les nombres "aléatoires" en informatique sont pseudo-aléatoires en fait.
Ils sont donnés par des algorithmes très précis, des formules, qui donnent une séquence de nombres qui a apparemment l'air aléatoire (et qui possèdent certaines propriétés statistiques qu'on peut attendre de nombres aléatoires, comme une moyenne centrée, une distribution de probabilité uniforme ou normale, etc... )
Ces algorithmes ont besoin d'un nombre pour commencer la série de nombres "aléatoires" à retourner. On appelle ce nombre de départ la "graine" (Seed en anglais).
comme dit dans le manuel java : http://java.sun.com/j2se/1.4.2/docs/api/java/util/Random.html#Random%28%29
lorsque tu appelles le constructeur Random() sans argument, alors par défaut c'est le temps système ( à la milliseconde près) qui est utilisé comme graine. (la deuxième version que tu as donnée est donc parfaitement inutile)
Sinon tu peux spécifier toi-même la graine. new Random(23) par exemple. Ceci fait que tu obtiendras exactement les mêmes séries de nombres "aléatoires" lors de chaque utilisation de ton programme. Ceci n'est en général pas voulu, mais peut-être est-ce une bonne idée de le faire pour pouvoir déboguer ton programme correctement : si tu as toujours les mêmes nombres c'est n peu moins le bazar lorsque tu cherches à repérer une erreur.
J'avais jamais vu la première version. Tu as regardé dans la doc de JAVA si le constructeur de Random pouvait prendre une date en paramètre et ce que ça fait ?
Pour utiliser un random :
Random randomGenerator = new Random();
RandomGenerator () ;
(Éviter de faire un nouvel objet Random à chaque fois que tu en as besoin sinon tes nombres ne seront pas aléatoire. Il faut que tu rappelles toujours la même méthode RandomGenerator() que celle que tu viens de créer).
En espérant que ça t'éclaircis un peu. ^^
Pour utiliser un random :
Random randomGenerator = new Random();
RandomGenerator () ;
(Éviter de faire un nouvel objet Random à chaque fois que tu en as besoin sinon tes nombres ne seront pas aléatoire. Il faut que tu rappelles toujours la même méthode RandomGenerator() que celle que tu viens de créer).
En espérant que ça t'éclaircis un peu. ^^
la methode randomGenerator.nextInt() par exemple, pardon. Enfin jette un oeil à la doc : https://docs.oracle.com/javase/6/docs/api/index.html ( un Ctrl + F Random résoudra tous tes problèmes ! )