Последовательность длины n имеет n! Перестановки. Если каждая перестановка должна быть возможной, должна быть возможная последовательность случайных чисел для каждого.
Чтобы случайным образом переставить массив длины n, вы можете сгенерировать одно случайное число из диапазона 1..n! равномерно наугад Это идентифицирует одну перестановку, которую вы затем можете применить.
Вы можете улучшить свой вопрос, чтобы спросить, сколько нужно случайных битов. По тому же аргументу это будет log (n!). Чтобы дать вам представление об асимптотическом поведении этой функции, рассмотрим:
Пусть n> 3:
n = log (2 ^ n)
Таким образом, n случайных битов может быть недостаточно (для n> 3). Фактически можно доказать, что log (n!) Не принадлежит O (n).