Якщо ви не знайомі з теорією брейд, я рекомендую спочатку прочитати це . Це питання передбачає, що ви принаймні знайомі з поняттями, які ви знайдете, і передбачаєте, що ви добре знайомі з теорією груп
Визначимо σ n як тасьму, в якій n- я нитка (Один з індексованих) зверху перетинається через n + 1- ю нитку, а σ n - обернена від σ n (тобто n + 1- й пасма перетинає n- ту пасму).
Група кіс У п потім генерується <сг 1 , σ 2 , σ 3 ,. . . , σ n-1 > . Таким чином, кожна коса на B n може бути записана як добуток σ-коси. 1
Визначити, чи однакові дві коси в групі, не є простим завданням. Може бути досить очевидним, що σ 1 σ 3 = σ 3 σ 1 , але трохи менш очевидно, що, наприклад, σ 2 σ 1 σ 2 = σ 1 σ 2 σ 1 . 2
Тож питання "Як ми можемо визначити, чи однакові дві коси?". Добре два приклади, наведені вище, представляють трохи цього. Загалом вірні такі відносини, які називаються відносинами Артіна:
σ i σ j = σ j σ i ; i - j> 1
σ i σ i + 1 σ i = σ i + 1 σ i σ i + 1
Ми можемо використовувати ці два відношення спільно з аксіомами групи, щоб довести, що будь-які рівні коси рівні. Таким чином, дві коси рівні, якщо повторне застосування цих відносин, і групові аксіоми можуть це продемонструвати.
Завдання
Ви напишете програму або функцію, щоб взяти дві коси і визначити, чи рівні вони чи ні. Ви також можете взяти додатне ціле число, що представляє порядок групи.
Це питання з кодовим гольфом, тому відповіді будуть набиратись у байтах, менше байтів буде кращим.
Вхід і вихід
Ви повинні представляти Braid як упорядкований список генераторів (або будь-яку еквівалентну структуру, наприклад, вектор). Ви можете представляти генератори в будь-якій розумній формі (наприклад, ціле число, два кортежі додатного цілого і булевого числа).
Нарівні зі стандартними правилами вирішення проблеми слід вивести одне з двох різних значень, прийняти відхилення.
Випробування
[], [] -> 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: Зауважте, що хоча B n задовольняє всі властивості групи, операція на нашій косовій групі не є комутативною, і, отже, наша група не є абелевою.
2: Якщо ви хочете перевірити це на собі, я пропоную застосувати σ 1 - до обох сторін. Якщо ви намалюєте ці два на папері або змоделюєте їх фактичними рядками, повинно стати очевидним, чому це так.
[],[]
[1, 4, -4, 3, 2, 1], [3, 2, 1, 2] => TRUE