Перестановка анализа алгоритма

я столкнулся с этим после анализа перестановки алгоритмов:

Q: Учитывая массив отличных целых чисел, дайте алгоритм случайным образом переупорядочить целые числа так, чтобы каждое возможное переупорядочение было одинаково вероятно. Другими словами, учитывая деку карт, как можно переставить их таким образом, что какая-либо перестановка карт одинаково вероятна?

Хороший ответ: Пройти элементы в порядке, подкачав каждый элемент с a случайный элемент в массиве, который не появляется ранее, чем элемент. Это берет O (n) время. Обратить внимание, что существуют несколько возможные решения этой проблемы, а также несколько ответов good‐looking это неправильно. Например, небольшая модификация к вышеупомянутому алгоритм, посредством чего каждый переключает каждый элемент с любым элементом в массив не дает каждое переупорядочение с одинаково вероятностью .

то, Что я хотел бы знать, - то, почему переключение каждого элемента с любым другим элементом в массиве не производит хорошую перестановку в противоположность использованию перестановки Knuth (который описан). Кроме того, как Knuth переставляет избранные значения с равной вероятностью? Любая математика или доказательство значительно ценятся.

13
задан OckhamsRazor 3 September 2011 в 06:19
поделиться