Uma permutação de tamanho n é uma reordenação dos primeiros n números inteiros positivos. (ou seja, cada número inteiro aparece uma vez e exatamente uma vez). As permutações podem ser tratadas como funções que alteram a ordem de uma lista de itens de tamanho n . Por exemplo
(4 1 2 3) ["a", "b", "c", "d"] = ["d", "a", "b", "c"]
Assim, permutações podem ser compostas como funções.
(4 1 2 3)(2 1 3 4) = (4 2 1 3)
Isso traz muitas propriedades interessantes. Hoje estamos focando na conjugação . Permutações y e x (ambos de tamanho n ) são conjugados sse existem permutações g e g -1 (também de tamanho n ) tal que
x = gyg-1
e gg -1 é igual à permutação de identidade (os primeiros n números na ordem correta).
Sua tarefa é fazer duas permutações do mesmo tamanho por meio de métodos de entrada padrão e decidir se são conjugados. Você deve gerar um dos dois valores consistentes, um se eles forem conjugados e outro se não forem.
Isso é código-golfe, então as respostas serão pontuadas em bytes, com menos bytes sendo melhores.
Existem muitos teoremas sobre permutações conjugadas à sua disposição, então boa sorte e golfe feliz.
Você pode receber a entrada como um contêiner ordenado de valores (1-n ou 0-n) representando a permutação como acima, ou como uma função que pega um contêiner ordenado e executa a permutação. Se você optar por assumir a função, deve aceitá-la como argumento, em vez de tê-la com um nome predefinido.
Casos de teste
(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