Une Approche Empirique.
Nous allons mettre en œuvre l'erreur de l'algorithme dans Mathematica:
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];
]
Maintenant obtenir le nombre de fois que chaque entier est dans chaque position:
r = SortBy[#, #[[1]] &] & /@ Tally /@ Transpose[s]
Nous allons prendre trois positions dans les tableaux obtenus et le tracé de la distribution de fréquence pour chaque entier dans cette position:
Pour la position 1 à la fréquence de distribution:
Pour la position 5 (moyen)
Et pour la position 10 (le dernier):
et ici vous avez la distribution de tous les postes de tracés ensemble:
Ici vous avez plus de statistiques sur 8 positions:
Quelques observations:
- Pour tous les postes de la probabilité de
"1" est le même (1/n).
- La probabilité de la matrice est symétrique
à l'égard de la grande anti-diagonale
- Ainsi, la probabilité pour que tout nombre de la dernière
la position est également uniforme (1/n)
Vous pouvez visualiser les propriétés de regarder le départ de toutes les lignes à partir du même point (première propriété) et la dernière ligne horizontale (troisième propriété).
La deuxième propriété peut être vu à partir de la matrice suivante représentation exemple, où les lignes sont les positions, les colonnes sont du nombre des occupants, et la couleur représente la probabilité expérimentale:
Pour un 100x100 matrice:
Modifier
Juste pour le fun, j'ai calculé la formule exacte pour la deuxième diagonale de l'élément (la première est de 1/n). Le reste peut être fait, mais c'est beaucoup de travail.
h[n_] := (n-1)/n^2 + (n-1)^(n-2) n^(-n)
Les valeurs vérifiées à partir de n=3 à 6 ( {8/27, 57/256, 564/3125, 7105/46656} )
Modifier
Travailler un peu le grand calcul explicite dans @wnoise réponse, nous pouvons obtenir un peu plus d'infos.
Remplacement 1/n par p[n], donc les calculs sont maintenez non évaluée, on obtient par exemple pour la première partie de la matrice avec n=7 (cliquez pour voir une plus grande image):
Qui, après comparaison avec les résultats pour les autres valeurs de n, nous pouvons en identifier certains connus séquences d'entiers dans la matrice:
{{ 1/n, 1/n , ...},
{... .., A007318, ....},
{... .., ... ..., ..},
... ....,
{A129687, ... ... ... ... ... ... ..},
{A131084, A028326 ... ... ... ... ..},
{A028326, A131084 , A129687 ... ....}}
Vous pouvez trouver ces séquences (dans certains cas avec des signes différents) dans le merveilleux http://oeis.org/
Résoudre le problème général est plus difficile, mais j'espère que ce n'est qu'un début