Il y a beaucoup de questions SO sur les pondérations aléatoires, mais toutes reposent sur le biais allant au nombre le plus élevé. Je veux biaiser vers le plus bas.Sélection aléatoire de la pondération la plus faible
Mon algorithme pour le moment, est pondéré aléatoirement avec un biais vers les valeurs les plus élevées. Comment est-ce que je pourrais convertir cela en biaiser des valeurs plus basses? C'est à dire que je veux dans 100 échantillons, l'échantillon de poids [0] soit choisi 66% du temps; et poids [1] 33% du temps (c.-à-d. l'inverse de ce qu'ils sont maintenant).
exemple à la main pour Omni, somme ref - poids solution [x]
Original:
1 | 1 | 1%
20 | 21 | 20%
80 | 101 | 79%
Desired:
1 | ? | 79%
20 | ? | 20%
80 | ? | 1%
Now sum - weights[i]
100(101 - 1) | 100 | 50%
81(101 - 20) | 181 | 40%
21(101 - 80) | 202 | 10%
Oh. :-(Oups, j'aurais dû le faire avec plus de précautions – Omnifarious