ЗАВДАННЯ
ВИЗНАЧЕННЯ
Розглянемо точки {1,2,3,4,5} та всі їх перестановки. Ми можемо знайти загальну кількість можливих перестановок цих 5 балів простим трюком: Ви можете заповнити 5 слотів цими точками, перший слот матиме 5 можливих чисел, другий 4 (як один був використаний для заповнення першого слота) третій 3 тощо. Таким чином, загальна кількість перестановок становить 5 * 4 * 3 * 2 * 1; це було б 5! перестановки або 120 перестановок. Ми можемо вважати це симетричною групою S5, і тоді Симетрична група Sn мала б n! or (n*n-1*n-2...*1)
перестановки.
"Рівна" перестановка - це така, де існує парне число циклів рівної довжини. Це легше зрозуміти , коли написано в циклічної запису, наприклад , (1 2 3)(4 5)
переставляє 1->2->3->1
і 4->5->4
та має один 3 довжину циклу (1 2 3)
і один цикл довжиною 2 (4 5)
. Класифікуючи перестановку як непарну чи парну, ми ігноруємо цикли непарної довжини і кажемо, що ця перестановка [ (1 2 3)(4 5)
] непарна, оскільки має непарне число {1} циклів парних довжин. Навіть приклади:
(1)(2 3)(4 5)
= два циклу 2 довжини | НАДІЙ |(1 2 3 4 5)
= відсутність рівномірних циклів | НАДІЙ | * зауважте, що якщо немає циклів рівної довжини, то перестановка є рівною.
Непарні приклади:
(1 2)(3 4 5)
= один цикл 2 довжини | ODD |(1)(2 3 4 5)
= один цикл 4 довжини | ODD |
Оскільки рівно половина перестановок у будь-якій симетричній групі є рівною, ми можемо назвати парну групу змінною групою N, так що S5 = 120 A5 = 60 перестановок.
УВАГА
Перестановки повинні, як мінімум, записуватися у циклічних позначеннях, коли кожен цикл знаходиться в різних дужках і кожен цикл йде у порядку зростання. Наприклад, (1 2 3 4 5)
ні (3 4 5 1 2)
. І для циклів з одним числом, таких як: (1)(2 3 4)(5)
одиничні / фіксовані точки можуть бути виключені значенням (1)(2 3 4)(5) = (2 3 4)
. Але особистість (точка, де всі точки зафіксовані (1)(2)(3)(4)(5)
) повинна бути записана як ()
тільки для її представлення.
ЗМАГАННЯ
Я хотів би, щоб ви якомога менше коду взяли будь-яке додатне ціле число як вхідне значення {1,2,3,4 ...} і відображали всі перестановки змінної групи An, де n - це вхід / усі парні перестановки Sn. Наприклад:
Input = 3
()
(1 2 3)
(1 3 2)
і
Input = 4
()
(1 2)(3 4)
(1 3)(2 4)
(1 4)(2 3)
(1 2 3)
(1 3 2)
(1 2 4)
(1 4 2)
(1 3 4)
(1 4 3)
(2 3 4)
(2 4 3)
І як у прикладах, я хотів би, щоб усі цикли однієї довжини були зведені, а щодо ідентичності: виходи нічого,
()
не тільки дужки, але і все, що ви використовуєте для показу різних перестановок} або id
є прийнятними.
ДОПОМОГА ЧИТАННЯ
Ви можете знайти більше інформації тут:
ЩАСТИ
І оскільки це кодогольф, той, хто може надрукувати перестановки змінної групи А в найкоротших байтах, виграє.
(2 3 1 4)
у порядку зростання? Ви маєте на увазі, що ми повинні просто поставити найменший елемент спереду?
(2 3 1 4)
само 2->3->1->4->2
вона може бути записана (1 4 2 3)
з найменшим елементом першого
[[1, 2], [3, 4]]
замість(1 2)(3 4)
?