76 votes

Comment choisir un élément par sa probabilité?

J’ai une liste d’articles. Chacun de ces éléments a sa propre probabilité.

Quelqu’un peut-il suggérer un algorithme pour choisir un élément en fonction de sa probabilité?

94voto

Brent Worden Points 5118
<ol> <li>Générez un nombre aléatoire uniformément distribué.</li> <li>Parcourez votre liste jusqu’à ce que la probabilité cumulative des éléments visités soit supérieure au nombre aléatoire</li> <p>Exemple de code :</p><pre><code></code></pre></ol>

37voto

Usman Ismail Points 3327

Ainsi, avec chaque magasin d’articles, un nombre qui marque sa probabilité relative, par exemple si vous avez 3 articles, l’un devrait être deux fois plus susceptible d’être sélectionné que l’un des deux autres, votre liste aura:

Additionnez ensuite les numéros de la liste (c’est-à-dire 4 dans notre cas). Maintenant, générez un nombre aléatoire et choisissez cet index. int index = rand.nextInt(4); renvoyer le nombre tel que l’index se trouve dans la plage correcte.

Code Java :

33voto

mj_ Points 1766

prétendre que nous avons la liste suivante

Supposons que toutes les probabilités sont des entiers et attribuons à chaque élément une « plage » calculée comme suit.

Les nouveaux chiffres sont les suivants

Maintenant, choisissez un nombre aléatoire de 0 à 100. Disons que vous en choisissez 32. 32 tombe dans la fourchette de l’article B.

Mj

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X