|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre du Club
![]() Inscription : janvier 2010 Messages : 22 ![]() |
Bonjour,
Depuis que array_rand() ne mélange plus les clés des tableaux (php-5.2) : j'utilise une combinaison array_rand() + shuffle() qui, hélas, mélange mal les éléments et qui équivaut quasiment à couper et recouper basiquement un jeu de carte. Ce qui fait qu'on observe, après rechargement de la page, quelques changements dans l'ordre mais aussi beaucoup trop de similitudes… pas de quoi casser trois pattes à un canard. Connaissez vous une meilleure alternative ou une façon d'utiliser ces deux fonctions pour obtenir un " vrai hasard " ? Voire : pouvez vous m'aiguiller vers une fonction que j'ignore et qui ferait mon affaire ? <edit> Note à celui qui a modifié mon post, quand je m'explique littéralement : ce n'est pas du code - l'utilisation de la balise "code" nuit complètement au bon entendement de ce que veux dire. (J'ai rétabli et merci de laisser ainsi) </edit> |
|
|
00
|
|
|
#2 |
![]() ![]() Vincent Inscription : juillet 2005 Messages : 14 929 ![]() |
J'ai fais des tests sur 20 000 000 tirages sur un tableau de 5 éléments :
Nombre de sorties de chaque élément par array_rand : Code :
Array ( [1] => 4030027 [2] => 3997068 [0] => 3991579 [4] => 4030029 [3] => 3951297 ) 3.99711275 Moyenne de differences par rapport au tirage précédent avec array_shuffle 3.99853085 |
|
|
00
|
|
|
#3 | ||
|
Membre du Club
![]() Inscription : janvier 2010 Messages : 22 ![]() |
Merci sabotage de ta réponse.
As-tu combiné les deux comme ci-bas ? ou bien as-tu fais autrement ? PS ; je n'ai pas trouvé la fonction array_shuffle dans le manuel PHP, j'utilise donc shuffle tout simple. Code php :
|
||
|
|
00
|
|
|
#4 |
![]() ![]() Vincent Inscription : juillet 2005 Messages : 14 929 ![]() |
Oui pardon il s'agit bien de shuffle.
Mon test montre que aussi bien shuffle que array_rand fournisse le service attendu. |
|
|
00
|
|
|
#5 |
|
Membre du Club
![]() Inscription : janvier 2010 Messages : 22 ![]() |
@sabotage Merci, j'ai confiance en ton test.
Je trouvais simplement qu'il y avait trop de similitudes de positionnement entre un tirage et le suivant. J'avais sans doute pas assez de "fiches membres" (le principe est de ne pas faire de jaloux et d'afficher l'ordre des membres de l'association de manière aléatoire) On dirait que j'ai la berlue… Car ça me semble fonctionner de nouveau. J'utilise actuellement : Apache/2.0.63 (Unix) PHP/5.2.11 et je trouve tout de même que ça ne se "mélange pas trop au top". Heureusement que je ne me serve pas de cette fonction pour choisir mes numéros gagnants au Loto Montre-moi ton test sur 20 bananes de tirages (s'il te plait) - Ça m'interresse. <edit> Je veux dire le code qui produit le résultat du test ![]() </edit> |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com