Dies ist eine Folgefrage zu einer Stackoverflow- Frage zum zufälligen Mischen eines Arrays .
Es gibt etablierte Algorithmen (wie das Knuth-Fisher-Yates-Shuffle ), mit denen man ein Array mischen sollte, anstatt sich auf "naive" Ad-hoc-Implementierungen zu verlassen.
Ich bin jetzt daran interessiert zu beweisen (oder zu widerlegen), dass mein naiver Algorithmus kaputt ist (wie in: Es werden nicht alle möglichen Permutationen mit gleicher Wahrscheinlichkeit erzeugt).
Hier ist der Algorithmus:
Wiederholen Sie die Schleife ein paar Mal (die Länge des Arrays sollte ausreichen), und erhalten Sie in jeder Iteration zwei zufällige Array-Indizes, und tauschen Sie die beiden Elemente dort aus.
Offensichtlich braucht dies mehr Zufallszahlen als KFY (doppelt so viel), aber abgesehen davon funktioniert es richtig? Und welche Anzahl von Iterationen ist angemessen (ist die "Länge des Arrays" ausreichend)?