Verwendung von JavaScript Array.sort() zum Mischen: Eine Untersuchung
In diesem Artikel untersuchen wir die Gültigkeit und Wirksamkeit der Verwendung von JavaScript Array.sort()-Methode zum Mischen.
Die Problem
Ein Codeausschnitt, der während einer Debugging-Sitzung auftauchte, gab Anlass zu Bedenken hinsichtlich der Eignung dieses Ansatzes:
function randOrd(){ return (Math.round(Math.random())-0.5); } coords.sort(randOrd); alert(coords);
Obwohl die Ergebnisse zufriedenstellend erschienen, blieb die Skepsis aufgrund des Fehlens bestehen theoretische Unterstützung für den Sortieralgorithmus, der von der Methode sort() verwendet wird. Darüber hinaus gab es Bedenken hinsichtlich der Einheitlichkeit der Mischvorgänge in verschiedenen Implementierungen.
Beantwortung der Fragen
Ist es richtig, sort() für die Mischvorgänge zu verwenden?
Theoretisch, antwortete Jon, ist es nicht empfehlenswert, sich beim Mischen als Sortierung auf die Methode sort() zu verlassen Algorithmen variieren und können zu uneinheitlichen Ergebnissen führen.
Eine alternative Mischfunktion
Trotz der Mängel von sort() ist hier eine effiziente Implementierung, die eine gleichmäßige Verteilung gewährleistet von Permutationen:
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; }
Auswerten der Zufälligkeit
Um die Zufälligkeit zu beurteilen, können sorgfältige Messungen der Mischergebnisse durchgeführt werden. Durch den Vergleich der Verteilungen mit erwarteten Werten kann die Einheitlichkeit der Ergebnisse bewertet werden.
Implikationen für die praktische Verwendung
Bedenken Sie Folgendes, wenn Sie sort() zum Mischen verwenden:
Das obige ist der detaillierte Inhalt vonIst die Verwendung von JavaScripts Array.sort() zum Mischen eine zuverlässige Methode?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!