Перестановка розміру n - це переупорядкування перших n натуральних чисел. (тобто кожне ціле число з’являється один раз і точно один раз). Перестановки можна трактувати як функції, що змінюють порядок списку елементів розміром n . Наприклад
(4 1 2 3) ["a", "b", "c", "d"] = ["d", "a", "b", "c"]
Таким чином, перестановки можуть бути складені як функції.
(4 1 2 3)(2 1 3 4) = (4 2 1 3)
Це спричиняє масу цікавих властивостей. Сьогодні ми зосереджуємось на поєднанні . Перестановки y і x (обидва розміру n ) є кон'югатами, якщо є перестановки g і g -1 (також розміру n ) такі, що
x = gyg-1
і gg -1 дорівнює перестановці тотожності (перші n чисел у належному порядку).
Ваше завдання - взяти дві перестановки однакового розміру за допомогою стандартних методів введення та вирішити, чи є вони кон'югатами. Вам слід вивести одне з двох послідовних значень, одне, якщо вони є сполучниками, а друге, якщо їх немає.
Це кодовий гольф, тому відповіді будуть набрані в байтах, а менша кількість байтів буде кращою.
Існує безліч теорем про суміжні перестановки, які є у вашому розпорядженні, тому удачі та щасливого гольфу.
Ви можете приймати введення як упорядкований контейнер значень (або 1-n або 0-n), що представляє перестановку, як вище, або як функція, яка приймає впорядкований контейнер і виконує перестановку. Якщо ви вирішили взяти функцію, слід сприймати її як аргумент, а не мати її заздалегідь визначеним іменем.
Випробування
(1) (1) -> True
(1 2) (2 1) -> False
(2 1) (2 1) -> True
(4 1 3 2) (4 2 1 3) -> True
(3 2 1 4) (4 3 2 1) -> False
(2 1 3 4 5 7 6) (1 3 2 5 4 6 7) -> True