Eine Permutation der Größe n ist eine Neuordnung der ersten n positiven ganzen Zahlen. (Das bedeutet, dass jede Ganzzahl genau einmal vorkommt.) Permutationen können wie Funktionen behandelt werden, die die Reihenfolge einer Liste von Elementen der Größe n ändern . Beispielsweise
(4 1 2 3) ["a", "b", "c", "d"] = ["d", "a", "b", "c"]
Somit können Permutationen wie Funktionen zusammengesetzt werden.
(4 1 2 3)(2 1 3 4) = (4 2 1 3)
Dies bringt viele interessante Eigenschaften mit sich. Heute konzentrieren wir uns auf die Konjugation . Die Permutationen y und x (beide der Größe n ) sind Konjugate, wenn die Permutationen g und g -1 (auch der Größe n ) so sind, dass
x = gyg-1
und gg -1 ist gleich der Identitätspermutation (die ersten n Zahlen in der richtigen Reihenfolge).
Ihre Aufgabe ist es, über Standardeingabemethoden zwei gleich große Permutationen zu nehmen und zu entscheiden, ob es sich um Konjugate handelt. Sie sollten einen von zwei konsistenten Werten ausgeben, einen, wenn es sich um Konjugate handelt, und den anderen, wenn dies nicht der Fall ist.
Dies ist Codegolf, daher werden die Antworten in Bytes bewertet, wobei weniger Bytes besser sind.
Es gibt viele Theoreme über konjugierte Permutationen, die Ihnen zur Verfügung stehen, also viel Glück und glückliches Golfen.
Sie können Eingaben als einen geordneten Container mit Werten (entweder 1-n oder 0-n) annehmen, die die Permutation wie oben darstellen, oder als eine Funktion, die einen geordneten Container annimmt und die Permutation ausführt. Wenn Sie die Funktion übernehmen möchten, sollten Sie sie als Argument verwenden, anstatt sie unter einem vordefinierten Namen zu haben.
Testfälle
(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