Pouvez-vous mélanger un tableau à l'aide de Array.sort() ?
Malgré le scepticisme initial, la méthode Array.sort() peut en effet être utilisé pour le brassage de tableaux. Voici comment cela fonctionne :
Avantages et inconvénients de l'utilisation d'Array.sort() pour le mélange
Avantages :
Inconvénients :
Mesurer le caractère aléatoire du Résultats
Pour quantifier le caractère aléatoire de la technique de brassage, on peut effectuer des tests empiriques et comparer les résultats aux valeurs attendues. Par exemple, on peut calculer la probabilité de chaque permutation possible et la comparer à la distribution uniforme.
Algorithme de brassage alternatif (Fisher-Yates)
En utilisant Array. sort() est pratique, un algorithme de brassage plus optimal et bien connu est Fisher – Yates shuffle :
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; }
Cet algorithme est à la fois efficace (O(n)) et garantit une répartition uniforme des résultats.
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!