Ein empirischer Ansatz.
Lassen Sie uns den fehlerhaften Algorithmus in Mathematica implementieren:
p = 10; (* Range *)
s = {}
For[l = 1, l <= 30000, l++, (*Iterations*)
a = Range[p];
For[k = 1, k <= p, k++,
i = RandomInteger[{1, p}];
temp = a[[k]];
a[[k]] = a[[i]];
a[[i]] = temp
];
AppendTo[s, a];
]
Ermitteln Sie nun, wie oft sich jede Ganzzahl an jeder Position befindet:
r = SortBy[#, #[[1]] &] & /@ Tally /@ Transpose[s]
Nehmen wir drei Positionen in den resultierenden Arrays und zeichnen die Häufigkeitsverteilung für jede Ganzzahl an dieser Position:
Für Position 1 lautet die Frequenzverteilung:
Für Position 5 (Mitte)
Und für Position 10 (letzte):
und hier haben Sie die Verteilung für alle Positionen zusammen geplottet:
Hier haben Sie eine bessere Statistik über 8 Positionen:
Einige Beobachtungen:
- Für alle Positionen ist die Wahrscheinlichkeit von "1" gleich (1 / n).
- Die Wahrscheinlichkeitsmatrix ist symmetrisch in Bezug auf die große Antidiagonale
- Die Wahrscheinlichkeit für eine beliebige Zahl an der letzten Position ist also ebenfalls einheitlich (1 / n).
Sie können diese Eigenschaften visualisieren, indem Sie den Anfang aller Linien vom selben Punkt (erste Eigenschaft) und der letzten horizontalen Linie (dritte Eigenschaft) betrachten.
Die zweite Eigenschaft ist aus dem folgenden Beispiel für eine Matrixdarstellung ersichtlich, in der die Zeilen die Positionen, die Spalten die Insassenzahl und die Farbe die experimentelle Wahrscheinlichkeit darstellen:
Für eine 100x100-Matrix:
Bearbeiten
Nur zum Spaß habe ich die genaue Formel für das zweite diagonale Element berechnet (das erste ist 1 / n). Der Rest kann erledigt werden, aber es ist viel Arbeit.
h[n_] := (n-1)/n^2 + (n-1)^(n-2) n^(-n)
Verifizierte Werte von n = 3 bis 6 ({8/27, 57/256, 564/3125, 7105/46656})
Bearbeiten
Wenn wir die allgemeine explizite Berechnung in der Antwort von @wnoise ein wenig ausarbeiten, können wir ein wenig mehr Informationen erhalten.
Wenn wir 1 / n durch p [n] ersetzen, damit die Berechnungen nicht bewertet werden, erhalten wir beispielsweise für den ersten Teil der Matrix n = 7 (klicken, um ein größeres Bild zu sehen):
Nachdem wir mit den Ergebnissen für andere Werte von n verglichen haben, können wir einige bekannte ganzzahlige Sequenzen in der Matrix identifizieren:
{{ 1/n, 1/n , ...},
{... .., A007318, ....},
{... .., ... ..., ..},
... ....,
{A129687, ... ... ... ... ... ... ..},
{A131084, A028326 ... ... ... ... ..},
{A028326, A131084 , A129687 ... ....}}
Sie können diese Sequenzen (in einigen Fällen mit unterschiedlichen Zeichen) in der wunderbaren http://oeis.org/ finden.
Das allgemeine Problem zu lösen ist schwieriger, aber ich hoffe, dies ist ein Anfang