Добре відомо, що цей "наївний" алгоритм переміщення масиву шляхом заміни кожного елемента іншим випадково вибраним не працює належним чином:
for (i=0..n-1)
swap(A[i], A[random(n)]);
Зокрема, оскільки на кожному з ітерацій робиться один із варіантів (з однаковою ймовірністю), можливі можливих 'шляхів' через обчислення; тому що кількість можливих перестановокне ділиться рівномірно на кількість шляхів , за цим алгоритмом неможливо створити кожен зперестановки з однаковою ймовірністю. (Натомість слід використовувати так званий перетасовок Фішера-Йейта , який по суті змінює виклик на вибір випадкового числа з [0..n) з викликом на вибір випадкового числа з [i..n); але це спір мого питання.)
Мені цікаво, наскільки «поганим» може бути наївне побиття? Більш конкретно, нехай - це сукупність усіх перестановок, а - кількість шляхів через наївний алгоритм, що виробляє отриману перестановку , яка асимптотична поведінка функції
і
?
Провідним фактором є «нормалізація» цих значень: якщо наївне переміщення «асимптотично добре», то
.
Я підозрюю (на основі деяких комп'ютерних симуляцій, які я бачив), що фактичні значення обмежені від 1, але чи відомо навіть, якщо є кінцевим, або якщо обмежений від 0? Що відомо про поведінку цих величин?