Jika Anda tidak terbiasa dengan Braid-Theory, saya sarankan Anda membaca ini dulu. Pertanyaan ini mengasumsikan bahwa Anda paling tidak terbiasa dengan konsep-konsep yang ada dan menganggap Anda sudah terbiasa dengan teori-kelompok
Mari kita definisikan σ n menjadi jalinan di mana untai ke- n (Satu diindeks) dari atas menyilang ke untai ke- 1 , dan σ n - menjadi kebalikan dari σ n (Itulah ke- n ke- 1) strand melintasi strand ke- n ).
Grup kepang B n kemudian dihasilkan oleh <σ 1 , σ 2 , σ 3 ,. . . , σ n-1 > . Dengan demikian setiap kepang pada B n dapat ditulis sebagai produk kepang σ. 1
Menentukan apakah dua kepang pada suatu kelompok sama bukanlah tugas yang mudah. Mungkin cukup jelas bahwa σ 1 σ 3 = σ 3 σ 1 , tetapi agak kurang jelas bahwa misalnya σ 2 σ 1 σ 2 = σ 1 σ 2 σ 1 . 2
Jadi pertanyaannya adalah "Bagaimana kita bisa menentukan apakah dua kepang sama?". Nah dua contoh di atas masing-masing mewakili sedikit dari ini. Secara umum hubungan berikut, yang disebut hubungan Artin, adalah benar:
σ i σ j = σ j σ i ; i - j> 1
σ i σ i + 1 σ i = σ i + 1 σ i σ i + 1
Kita dapat menggunakan dua hubungan ini bersamaan dengan aksioma kelompok untuk membuktikan bahwa setiap kepang yang sama adalah sama. Jadi, dua kepang sama jika aplikasi berulang hubungan ini dan aksioma kelompok dapat menunjukkan demikian.
Tugas
Anda akan menulis sebuah program atau fungsi untuk mengambil dua kepang dan menentukan apakah keduanya sama atau tidak. Anda juga dapat memilih bilangan bulat positif yang mewakili urutan grup.
Ini adalah pertanyaan kode-golf sehingga jawaban akan dinilai dalam byte, dengan lebih sedikit byte yang lebih baik.
Masukan dan keluaran
Anda harus mewakili Braid sebagai daftar generator yang dipesan, (atau struktur apa pun yang setara, misalnya vektor). Anda dapat mewakili generator dalam bentuk apa pun yang wajar (misalnya bilangan bulat, dua tupel bilangan bulat positif dan boolean).
Setara dengan aturan masalah keputusan standar Anda harus menampilkan salah satu dari dua nilai yang berbeda, yang menerima penolakan.
Uji Kasus
[], [] -> 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: Perhatikan bahwa meskipun B n memenuhi semua properti grup, operasi pada grup braid kami tidak komutatif, dan dengan demikian grup kami tidak abelian.
2: Jika Anda ingin memverifikasi ini untuk Anda sendiri, saya sarankan menerapkan σ 1 - untuk kedua sisi, Jika Anda menggambar keduanya di atas kertas, atau memodelkannya dengan string yang sebenarnya, itu akan menjadi jelas mengapa hal ini terjadi.
[],[]
[1, 4, -4, 3, 2, 1], [3, 2, 1, 2] => TRUE