Si j'ai bien compris ton algo, la proba de tirer le
- 1er élément est a/10
- 2e élément est (1-a/10) * (a+b)/10
- 3e élément (1-(1-a/10) * (a+b)/10) * (a+b+c)/10
- etc...
il me semble que pour que ton algo soit correct, il faut tirer un seul nombre aléatoire au début et trouver l'élément pour lequel la somme cumulée est supérieur au nombre aléatoire...
step = 0
sum = 10
nbr = random(0-10) % renvoie un nombre aléatoire entre 0 et 10
for element in dictionnaire
{
step = step + element.value
if nbr < step : choose element
else continue
}
alors, la proba de tirer le
- 1er élément est a/10
- 2e élément est (a+b)/10 - a/10 = b/10
- 3e élément (a+b+c)/10 - (a+b)/10 = c/10
- etc...
# euh....
Posté par yaya . En réponse au journal Tirage aléatoire dans un tableau. Évalué à 2.
- 1er élément est a/10
- 2e élément est (1-a/10) * (a+b)/10
- 3e élément (1-(1-a/10) * (a+b)/10) * (a+b+c)/10
- etc...
il me semble que pour que ton algo soit correct, il faut tirer un seul nombre aléatoire au début et trouver l'élément pour lequel la somme cumulée est supérieur au nombre aléatoire...
step = 0
sum = 10
nbr = random(0-10) % renvoie un nombre aléatoire entre 0 et 10
for element in dictionnaire
{
step = step + element.value
if nbr < step : choose element
else continue
}
alors, la proba de tirer le
- 1er élément est a/10
- 2e élément est (a+b)/10 - a/10 = b/10
- 3e élément (a+b+c)/10 - (a+b)/10 = c/10
- etc...
enfin si je ne me suis pas planté...