Hello out there!
SPITZE hab daraus ne schicke Lösung basteln können.
Ganz gewiss nicht!! Siehe https://forum.selfhtml.org/?t=163655&m=1066385
Eine Lösung, ein Array wirklich zu durchmischen, sähe so aus:
var sortedArray = ["A", "B", "C", "D"];
var shuffledArray = new Array();
for (var i = sortedArray.length; i > 1;)
{
var r = Math.floor(Math.random() * i); // Zufallszahl aus Bereich 0 ≤ r < i
// Bereich nimmt mit jedem Schleifendurchlauf um 1 ab
shuffledArray[--i] = sortedArray[r]; // vermindere Schleifenindex
// kopiere zufällig ausgewähltes Element ans Ende des Zielarrays
sortedArray.splice(r, 1); // lösche eben kopiertes Element aus Ursprungsarray
// damit ist vermindertes i gleich aktueller sortedArray.length
}
shuffledArray[0] = sortedArray[0];
Eine andere Lösung wäre, einmal eine ganzzahlige Zufallszahl r aus dem Bereich 0 ≤ r < n! (n = sortedArray.length; n! = 1 * 2 * 3 * ... * n) zu ziehen und anhand dieser diejenige Permutation auszugeben, die in der sortierten Liste aller Permutationen an r-ter Stelle steht.
See ya up the road,
Gunnar
--
„Und [dieses Forum] soll […] auch ein Fachforum bleiben und kein Psychologieforum werden.“ (Kirsten Evers)
„Und [dieses Forum] soll […] auch ein Fachforum bleiben und kein Psychologieforum werden.“ (Kirsten Evers)