Selection d'une clé au hasard et gestion du poids [débutant]

yobogs Messages postés 9 Date d'inscription lundi 24 mars 2003 Statut Membre Dernière intervention 10 juin 2007 - 16 mars 2005 à 18:28
yobogs Messages postés 9 Date d'inscription lundi 24 mars 2003 Statut Membre Dernière intervention 10 juin 2007 - 16 mars 2005 à 23:48
je suis à la recherche de l'aide pour 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.

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 pratique c'est une autre paire de manche.
J'ai commencé par tenter de lire le fichier texte :


String nomFic = "fichier.txt";

FileReader fr = new FileReader(nomFic);

BufferedReader buf = new BufferedReader(fr);

String ligne;

ligne = buf.readLine();

while (ligne != null) {


StringTokenizer st = new StringTokenizer(ligne,"||");
while (st.hasMoreTokens()) {
// Décomposition Valeur et Poid (comment faire ???)
}


ligne = buf.readLine();
}

fr.close();

Mais après c'est le grand bleu, je nage completement

Qq'un pourrait-il me guider un peu pour avancer ?

D'avance Merci
A voir également:

3 réponses

yobogs Messages postés 9 Date d'inscription lundi 24 mars 2003 Statut Membre Dernière intervention 10 juin 2007
16 mars 2005 à 19:31
EXCUSEZ MOI POUR LE DOUBLON...
Jai appuyé deux fois sur Ajouter
0
cs_phloam Messages postés 8 Date d'inscription mercredi 16 mars 2005 Statut Membre Dernière intervention 20 décembre 2005
16 mars 2005 à 19:58
je sais pas si ca peut t'aider
j'ai peut etre pas tres bien compris la question...
mais si tu creer une variable disons int rand= Math.round(14*Math.random());
ca te donnera une valeur au hasard entre 1 et 14 non'et apres tu n'as plus qu'a effectuer
tes actions en fonction de cette variable
http://membres.lycos.fr/vinsou81
0
yobogs Messages postés 9 Date d'inscription lundi 24 mars 2003 Statut Membre Dernière intervention 10 juin 2007
16 mars 2005 à 23:48
C'est pas bête du tout en effet lol
Je reflechissais comme un fou pour trouver une solution :p

Merci
0
Rejoignez-nous