java.util.Random pas si random que ça :( [Java] - Java - Programmation
Marsh Posté le 12-01-2005 à 01:38:14
t'as lu la javadoc de Random? si je me souviens bien, il est expliqué noir (ou bleu?) sur blanc ce que tu dois faire.
Marsh Posté le 12-01-2005 à 09:41:21
Tu dois instancier ton générateur à l'extérieur de la boucle !!
Car sinon, la suite est regénéré à chaque fois ! Ta fonction doit s'effectuer rapidement, donc les suites générées sont régulièrement identiques.
Il faut donc que ton Random soit un argument de la fonction et soit initialisé une fois avant de boucler sur ta fonction.
Par ailleurs, le générateur de java a mauvaise réputation mais pour ton cas, ça devrai suffire
Marsh Posté le 12-01-2005 à 09:50:14
Glod 2 a écrit : |
Pas si random ou pas si util ?
Marsh Posté le 12-01-2005 à 12:29:36
bobuse a écrit : Tu dois instancier ton générateur à l'extérieur de la boucle !! |
ben il est pas dans une boucle mais dans une méthode là, mais je suppose que ça reviens au même, ok je vais lui passer un seed comme argument ça devrait aller mieux, m'enfin ça se mort là queue, le seed si jle mets en dur j'aurai toujours la même séquence et si j'en fais un random....
Marsh Posté le 12-01-2005 à 13:20:19
Ah ben jvais me servir du System.currentTimeMillis() pour mon seed
Marsh Posté le 12-01-2005 à 14:12:57
Glod 2> Heu attends là
Ta fonction, elle sert juste à récupérer au hasard un nom ? ok ?
Le truc, c'est que tu l'appelles plusieurs fois pour avoir plusieurs nom tirés au hasard ? non ?
Et ton problème et que tu as beaucoup de nom tirés qui sont les mêmes ?
bon, donc si je ne me suis pas trompé, ta fonction getAName() est appelée dans une boucle ?
Par ailleurs Java utilise déjà l'horloge comme seed je crois
Marsh Posté le 12-01-2005 à 14:22:32
crée 1 fois ton Random avant de faire la boucle d'appels à getAName() comme le dit bobuse.
Marsh Posté le 13-01-2005 à 10:26:02
SomeBugsInMe a écrit : crée 1 fois ton Random avant de faire la boucle d'appels à getAName() comme le dit bobuse. |
J'aime quand on m'écoute
Marsh Posté le 13-01-2005 à 20:13:28
Vivi j'ai fait ça, je vous tiens au courant des résultats.
Marsh Posté le 11-01-2005 à 20:45:49
Hello tous,
j'ai un petit problème avec mes chiffres sortis avec la classe Random.
En effet, je génère des noms à partir d'une base de donnée de noms et de prénoms, je tire donc un nom et un prénom que j'assemble.
Le problème c'est que la base fait 300 prénoms * 300 noms, donc preque 100k possibilités et que j'ai déja DES couples identiques. Comme vous allez le voir dans mon code ma méthode est statique, est-ce une possible cause du problème ?
C'est la première fois que je l'etilise (Random), donc pê je fais pas les choses bien ?
Voici le code :
une idée ?
Là je suis sur le point de tirer 100 int aléatoires, les foutre dans un tableau, et tirer aléatoirement l'index mais bon c suppra lourd pour un traîtement qui se répète en boucle assez souvent...
edit : oui je sais dans cette méthode mes noms de variable sont pas très heureux
Message édité par glod 2 le 11-01-2005 à 20:53:07