Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1809 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  [JAVA][débutant] Valeur aléatoire et poids

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[JAVA][débutant] Valeur aléatoire et poids

n°1015987
yobogs
Posté le 17-03-2005 à 14:24:44  profilanswer
 

Bonjour,
 
j'essaye de dev un script qui me permettrait de selectionner une valeur aléatoire en prenant compte de son poids.  
 
Je m'explique :  
J'ai dans un fichier texte :  
 
Valeur1||10  
Valeur2||1  
Valeur3||4  
 
En suivant les poids des valeurs, la Valeur1 devrait sortir plus fréquement que la Valeur3 qui elle même sortira plus fréquement que la Valeur2.  
 
D'après ce qu'on m'a dit, il faut que je fasses la somme de tous les poids et que tu tires un nombre entre zero et cette somme - 1.  
 
Et Ensuite, attribuer a chaque valeur un interval correspondant a son poids :  
 
de 0 à 9 : valeur 1  
de 10 à 10 : valeur 2  
de 11 à 14 : valeur 3
 
Pour la somme j'y suis arrivé, par contre je bloque au moment de faire correspondre la valeur rand issue du random à une des valeur de mon fichier texte :  
 

Code :
  1. String nomFic = "fichier.txt";
  2. FileReader fr = new FileReader(nomFic);
  3. BufferedReader buf = new BufferedReader(fr);
  4.      
  5. String ligne = buf.readLine();
  6. int total = 0;
  7.      
  8. while (ligne != null) {
  9.    StringTokenizer st = new StringTokenizer(ligne, "||" );
  10.    String[] val = new String[2];
  11.    int i=0;
  12.    while(st.hasMoreElements()){
  13.      val[i] = st.nextToken();
  14.      i++;
  15.    }
  16.    int poids= Integer.parseInt(val[1]);
  17.    total += poids;
  18.          
  19.       ligne = buf.readLine();
  20. }
  21.      
  22. int rand= (int)Math.floor(Math.random()*(total-1));
  23. System.out.println(rand);
  24. // Faire correspondre la valeur de rand à une dés valeur de mon fichier ...  
  25.      
  26. fr.close();


 
Dans mon fichier j'ai :  
Valeur1||10  
Valeur2||1  
Valeur3||4  
 
Dans si rand = 10, je devrais avoir la valeur Valeur2.  
 
Qq'un aurait une idée sur comment je peux faire pour avancer ?  
 
Merci d'avance


Message édité par yobogs le 17-03-2005 à 14:26:49
mood
Publicité
Posté le 17-03-2005 à 14:24:44  profilanswer
 

n°1016867
nefertiti2
belle égyptienne 2
Posté le 18-03-2005 à 08:50:50  profilanswer
 

débutante aussi, je mettrais ((Math.random()*total)-1),ainsi, tu retires 1 après avoir randomisé.....

n°1017712
yobogs
Posté le 18-03-2005 à 16:19:11  profilanswer
 

ese-aSH je te remercie pour ta réponse par contre j'me casse la tête depuis hier mais g du mal a trouver comment integrer tes conseils dans mon script :/
 
comme c quasiment mon premier script java, je patauge ;)
 
G du mal à saisir pkoi rajouter int[] values alors que val[0] me donne cette valeur et g du mal à comprendre où mettre  
Random r = new Random();  
int rand = r.nextInt(total);  
int i = 0;  
while (poids[i]<rand) {i++}  
 
D'avance Merci


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  [JAVA][débutant] Valeur aléatoire et poids

 

Sujets relatifs
[Java] Serializer un Genericsclass java/XPath
Retourne une mauvaise valeurJava Recuperation de graphique issu de programme c++
[JAVA] [Résolu] Afficher une page html avec CSS dans un JEditorPane[CGI] Comment executer un script cgi... (je suis un debutant)
[Java/C#] Arret d'un Thread par le GC[ C ] Archi-debutant segfault sur petit programme :-(
recuperer heure java[Java] classe de gestion de fichier .ini à disposition par ici
Plus de sujets relatifs à : [JAVA][débutant] Valeur aléatoire et poids


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR