Jeśli nie jesteś zaznajomiony z teorią warkocza, polecam przeczytać ją najpierw. To pytanie zakłada, że znasz przynajmniej znane pojęcia i zakłada się, że dobrze znasz teorię grup
Zdefiniujmy σ n jako warkocz, w którym n- ta nić (jeden indeksowany) od góry przecina n + 1 nić, a σ n - odwrotność σ n (To jest n + 1- ty nić przecina n- ta nić).
Grupa oplot B n jest następnie wytwarzany przez <Ď 1 , σ 2 , σ 3 ,. . . , σ n-1 > . Zatem każdy warkocz na B n można zapisać jako iloczyn warkoczy σ. 1
Ustalenie, czy dwa warkocze w grupie są równe, nie jest prostym zadaniem. Może być całkiem oczywiste, że σ 1 σ 3 = σ 3 σ 1 , ale jest nieco mniej oczywiste, że na przykład σ 2 σ 1 σ 2 = σ 1 σ 2 σ 1 . 2)
Pytanie brzmi: „Jak możemy ustalić, czy dwa warkocze są takie same?”. Cóż, dwa powyższe przykłady stanowią po części. Zasadniczo następujące relacje, zwane relacjami Artina, są prawdziwe:
σ i σ j = σ j σ i ; i - j> 1
σ i σ i + 1 σ i = σ i + 1 σ i σ i + 1
Możemy wykorzystać te dwie relacje w połączeniu z aksjomatami grupy, aby udowodnić, że równe warkocze są równe. Zatem dwa warkocze są równe w przypadku wielokrotnego zastosowania tych relacji i aksjomaty grupowe mogą to wykazać.
Zadanie
Napisz program lub funkcję, aby wziąć dwa warkocze i określić, czy są one równe. Opcjonalnie możesz również przyjąć dodatnią liczbę całkowitą reprezentującą kolejność grupy.
To jest pytanie w golfa kodu, więc odpowiedzi będą oceniane w bajtach, przy czym mniej bajtów będzie lepszych.
Wejście i wyjście
Powinieneś reprezentować plecionkę jako uporządkowaną listę generatorów (lub dowolną równoważną strukturę, np. Wektor). Możesz reprezentować generatory w dowolnej rozsądnej formie (np. Liczba całkowita, krotka dodatnia liczba całkowita i wartość logiczna).
Na równi ze standardowymi regułami problemu z deskryptorem powinieneś wypisać jedną z dwóch odrębnych wartości, a mianowicie zaakceptować odrzucenie.
Przypadki testowe
[], [] -> True
[1,-1], [] -> True
[1,2,1], [2,1,2] -> True
[1,3], [3,1] -> True
[1,3,2,1],[3,2,1,2] -> True
[1,4,-4,3,2,1], [3,2,1,2] -> True
[2,2,1], [2,1,2] -> False
[1,2,-1], [-1,2,1] -> False
[1,1,1,2],[1,1,2] -> False
1. Należy zauważyć, że gdy B n spełnia wszystkie właściwości grupy operacji na naszej grupie oplot nie przemienne, a tym samym nie jest nasza grupa abelowa.
2: Jeśli chcesz to sprawdzić sam, proponuję zastosować σ 1 - po obu stronach, jeśli narysujesz je na papierze lub zamodelujesz za pomocą rzeczywistych łańcuchów, powinno stać się jasne, dlaczego tak jest.
[],[]
[1, 4, -4, 3, 2, 1], [3, 2, 1, 2] => TRUE