サイズ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個の適切な順序で番号)。
あなたのタスクは、標準入力メソッドを介して同じサイズの2つの順列を取得し、それらが共役かどうかを判断することです。2つの一貫した値の1つを出力する必要があります。1つは共役で、もう1つは共役ではありません。
これはコードゴルフであるため、回答はバイト単位でスコアリングされ、バイト数は少ない方が良いでしょう。
共役順列については多くの定理があり、自由に使用できます。幸運と幸せなゴルフです。
入力は、上記のような順列を表す値の順序付けされたコンテナ(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