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
Bonjour, quelle est la différence entre ces deux random :
Random randomGenerator = new Random((new Date().getTime()));
Random randomGenerator = new Random();

qu'est ce qu'on souhaite faire de getTime() ?

ce n'est pas le même principe du random ?

merci pour l'éclaircissement.
A voir également:

2 réponses

Pacorabanix Messages postés 3248 Date d'inscription jeudi 23 août 2007 Statut Membre Dernière intervention 19 mai 2013 660
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.
0
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. ^^
0
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 ! )
0