Initialiser un entier suivant des Probabilité
clyro
-
Defouille Messages postés 404 Statut Membre -
Defouille Messages postés 404 Statut Membre -
Bonjour,
j'aimerais créer un un entier qui vaut 1, 2, 3, 4, ou 5 avec une probabilité différente pour chaque nombre (genre avoir 1/3 de chance d'avoir 1 et 1/8 d'avoir 4 etc). Quelqu'un sait-il comment faire simplement?
merci
j'aimerais créer un un entier qui vaut 1, 2, 3, 4, ou 5 avec une probabilité différente pour chaque nombre (genre avoir 1/3 de chance d'avoir 1 et 1/8 d'avoir 4 etc). Quelqu'un sait-il comment faire simplement?
merci
Configuration: Linux Suse Firefox 3.5.6
4 réponses
-
-
Salut,
le meilleur moyen serait de réduire au PPCM tes probabilités(puisqu'il faut 1/1) et ensuite de faire un tirage aléatoire et en fonction du numéro sorti tu vois dans quel intervalle il se situe.
-
Le cumul de tes probabilités doit être égal à 1.
Tu le met sur un diviseur commun du style :
1 : 1/3 = 4/12
2 : 1/4 = 3/12
3 : 1/4 = 3/12
4 : 1/12
5 : 1/12
total 12/12
tu fais un random enter 1 et 12, et apres tu attributs en fonction d'un switch.
switch(random) { case 1 : case 2 : case 3 : case 4 : return 1; case 5 : case 6 : case 7 : return 2; case 8 : case 9 : case 10 : return 3; case 11 : return 4; case 12 : return 5; }
après faut adapter au langage
:)
-
-
ok je vois,
en C++, pour le switch ça devrait marcher,
par contre j'ai le droit de faire un code du style??switch(random) { case 1 : case 2 : case 3 : case 4 : return 1;break; case 5 : case 6 : case 7 : return 2;break; case 8 : case 9 : case 10 : return 3;break; case 11 : return 4;break; case 12 : return 5;break; }
merci en tout cas,
j'ai juste peur que ça soit un peu lent en traitement pour la machine
-
-
Tu peux rajouter un break, mais apres un return c'est inutile, par contre si tu remplace le return par une affectation c'est bon ^^