Salut à tous !![]()
je cherche la meilleur façon pour mélanger une liste aléatoirement, je viens d'écrire un tirage aléatoire mais il est trop gourmand en processeur et il met une plombe à s'exécuter....... car mes listes peuvent comporter des millions de valeurs !!
voici ce que j'ai écrit :
Ma liste c'est "@liste_v".
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 $taille=$#liste_v+1; for ($position=0; $position<=$#ech; $position++) { $truc=undef; while($truc eq "") { $tirage = int(rand($taille))-1; if (defined ($liste_v[$tirage])) { $truc=$liste_v[$tirage]; delete $liste_v[$tirage]; } } if ($truc ne 'null') { print V "\t$truc"; } else { print V "\t"; } } print V "\n";
Je viens de voir qu'en php, il existe une fonction pour mélanger une liste (srand(time()); shuffle($tab), il y a un truc équivalent en perl ??
Comment optimiser mon script pour qu'il aille beaucoup plus vite ??
merci![]()
Partager