Es ist bekannt, dass dieser "naive" Algorithmus zum Mischen eines Arrays durch Tauschen jedes Elements mit einem zufällig ausgewählten nicht richtig funktioniert:
for (i=0..n-1)
swap(A[i], A[random(n)]);
Insbesondere gibt es, da bei jeder von Iterationen eine von Entscheidungen getroffen wird (mit einheitlicher Wahrscheinlichkeit), mögliche "Pfade" durch die Berechnung; weil die Anzahl der möglichen Permutationenteilt sich nicht gleichmäßig in die Anzahl der Pfade , es ist für diesen Algorithmus unmöglich, jedes der zu erzeugenPermutationen mit gleicher Wahrscheinlichkeit. (Stattdessen sollte man den sogenannten Fischer-Yates- Shuffle verwenden, der im Wesentlichen den Aufruf zur Auswahl einer Zufallszahl aus [0..n] und den Aufruf zur Auswahl einer Zufallszahl aus [i..n] ändert.) Das ist jedoch nicht meine Frage.)
Was ich mich frage, ist, wie "schlecht" kann das naive Mischen sein? Insbesondere sei die Menge aller Permutationen und die Anzahl der Pfade durch den naiven Algorithmus, die die resultierende Permutation erzeugen , was ist das asymptotische Verhalten von funktionen
und
?
Der Hauptfaktor ist, diese Werte zu "normalisieren": Wenn das naive Mischen "asymptotisch gut" ist, dann
.
Ich vermute (basierend auf einigen Computersimulationen, die ich gesehen habe), dass die tatsächlichen Werte von 1 abgegrenzt sind, aber ist es sogar bekannt, ob endlich ist oder ob abgegrenzt ist 0? Was ist über das Verhalten dieser Größen bekannt?