Виклик
У найкоротшій кількості коду:
- Обчисліть тривалість циклу перестановки ідеального переміщення на колоді карт будь-якого розміру 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 є максимальним?