07-07-2011, 02:41 PM
De ce que j'ai compris la fonction array_rand ne permet pas la pondération, donc ce n'est pas vraiment ce qu'il recherche.
L'histoire du classement en ordre décroissant est assez simple en fait :
imaginons que tu ai comme pondération :
a : 10
b : 20
c : 30
d : 40
Si tu fait dans cet ordre tu auras 10% de chances de t'arrêter au premier passage de la boucle while, 20% au 2ème passage...
En commençant par d tu auras 40% de t'arrêter au premier passage puis 30% au 2ème etc. Donc ça optimise un peu.
Bien sur ça n'a d’intérêt que si tu tire beaucoup de fois avec les mêmes paramètres (et dans ce cas les lois de probas sont souvent meilleures, sauf cas particuliers).
L'histoire du classement en ordre décroissant est assez simple en fait :
imaginons que tu ai comme pondération :
a : 10
b : 20
c : 30
d : 40
Si tu fait dans cet ordre tu auras 10% de chances de t'arrêter au premier passage de la boucle while, 20% au 2ème passage...
En commençant par d tu auras 40% de t'arrêter au premier passage puis 30% au 2ème etc. Donc ça optimise un peu.
Bien sur ça n'a d’intérêt que si tu tire beaucoup de fois avec les mêmes paramètres (et dans ce cas les lois de probas sont souvent meilleures, sauf cas particuliers).