Перестановка размера 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