Powszechnie wiadomo, że ten „naiwny” algorytm tasowania tablicy poprzez zamianę każdego elementu na inny losowo wybrany nie działa poprawnie:
for (i=0..n-1)
swap(A[i], A[random(n)]);
W szczególności, ponieważ w każdym z powtórzeń, jeden z wyboru jest (z jednolitego prawdopodobieństwa) jest możliwych ścieżek „” do obliczeń; ponieważ liczba możliwych permutacji nie dzieli się równomiernie na liczbę ścieżek , algorytm nie jest w stanie wygenerować każdego z permutacje z jednakowym prawdopodobieństwem. (Zamiast tego należy użyć tak zwanego losowania Fischera-Yatesa , który zasadniczo zmienia połączenie, aby wybrać losową liczbę z [0..n) z połączeniem, aby wybrać losową liczbę z [i..n); jest to jednak kwestia mojego pytania).
Zastanawiam się, jak „zły” może być naiwny los. Mówiąc dokładniej, pozwalając być zbiorem wszystkich permutacji, a być liczbą ścieżek przez naiwny algorytm, który wytwarza wynikową permutację , jakie jest asymptotyczne zachowanie funkcji
i
?
Najważniejszym czynnikiem jest „normalizacja” tych wartości: jeśli naiwny los jest „asymptotycznie dobry”, to znaczy
.
Podejrzewam (na podstawie niektórych symulacjach komputerowych widziałem), że rzeczywiste wartości są ograniczone od 1, ale jest jeszcze wiadomo, czy jest skończony, czy lim m ( n ) jest ograniczony od 0? Co wiadomo o zachowaniu tych ilości?