Вызов
В кратчайшем количестве кода:
- Вычислите длину цикла перестановки идеального перемешивания на колоде карт любого размера n (где n ≥ 2, а n четное).
- Выведите таблицу всех длин циклов для 2 ≤ n ≤ 1000 ( четное n ).
Обратите внимание, что есть два основных способа определения идеального шаффла. Существует перетасовка , в которой первая карта находится сверху, а последняя - снизу, а в перетасовке первая и последняя карты перемещаются на одну позицию к центру. Вы можете выбрать, будете ли вы делать это в случайном порядке или в случайном порядке; алгоритм почти идентичен между ними.
- перестановка 10-карточной колоды: [1,2,3,4,5,6,7,8,9,10] ↦ [1,6,2,7,3,8,4,9,5, 10].
- в колоде из 10 карт: [1,2,3,4,5,6,7,8,9,10] ↦ [6,1,7,2,8,3,9,4,10, 5].
Графический пример
Здесь мы видим, что в случайном порядке в колоде из 20 карт продолжительность цикла составляет 18 шагов. (Это только для иллюстрации; ваше решение не обязано выводить циклы графически.) С другой стороны, классическая колода из 52 карт имеет продолжительность цикла перестановки всего 8 шагов (не показано).
В случайном порядке в колоде из 20 карт продолжительность цикла составляет всего 6 шагов.
Табличный пример вывода
Ваша программа должна выводить что-то похожее на это, хотя вы можете выбрать любой табличный формат, который вам больше нравится. Это для перестановки:
2 1
4 2
6 4
8 3
10 6
12 10
14 12
16 4
18 8
20 18
22 6
24 11
26 20
28 18
30 28
32 5
34 10
36 12
38 36
40 12
...many lines omitted...
1000 36
Вопросов
- Есть ли какая-либо связь между числовым входом n и его счетчиком циклов, когда n является степенью 2?
- Как насчет того, когда n не является степенью 2?
- Любопытно, что колода из 1000 карт имеет количество циклов вне случайного перемешивания всего 36, а колода из 500 карт имеет количество циклов вне случайного перемешивания 166. Почему это может быть?
- Какое наибольшее число вы можете найти, чье число циклов c значительно меньше n , а это означает, что отношение n / c максимально?