Maison >interface Web >js tutoriel >L'utilisation de Array.sort() de JavaScript pour la lecture aléatoire est-elle une méthode fiable ?
Utilisation de JavaScript Array.sort() pour le mélange : un examen
Dans cet article, nous explorons la validité et l'efficacité de l'utilisation de JavaScript Méthode Array.sort() pour le brassage.
Le Problème
Un extrait de code apparu lors d'une session de débogage a soulevé des inquiétudes quant à la pertinence de cette approche :
function randOrd(){ return (Math.round(Math.random())-0.5); } coords.sort(randOrd); alert(coords);
Bien que les résultats semblaient satisfaisants, le scepticisme persistait en raison du manque de support théorique de l'algorithme de tri utilisé par la méthode sort(). De plus, des inquiétudes ont été soulevées quant à l'uniformité des mélanges entre les différentes implémentations.
Réponses aux questions
Est-il correct d'utiliser sort() pour le mélange ?
En théorie, a répondu Jon, il n'est pas recommandé de s'appuyer sur la méthode sort() pour mélanger comme tri les algorithmes varient et peuvent conduire à des résultats non uniformes.
Une fonction de brassage alternative
Malgré les défauts de sort(), voici une implémentation efficace qui garantit une distribution uniforme de permutations :
function shuffle(array) { var tmp, current, top = array.length; if(top) while(--top) { current = Math.floor(Math.random() * (top + 1)); tmp = array[current]; array[current] = array[top]; array[top] = tmp; } return array; }
Évaluer le caractère aléatoire
Pour évaluer le caractère aléatoire, des mesures minutieuses des résultats de brassage peuvent être effectuées. En comparant les distributions aux valeurs attendues, l'uniformité des résultats peut être évaluée.
Implications pour une utilisation pratique
Considérez les éléments suivants lorsque vous utilisez sort() pour la lecture aléatoire :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!