Nếu bạn không quen thuộc với Braid-Theory, tôi khuyên bạn nên đọc cái này trước. Câu hỏi này giả định rằng bạn ít nhất quen thuộc với các khái niệm trong tay và cho rằng bạn đã quen thuộc với lý thuyết nhóm
Chúng ta hãy xác định σ n là braid trong đó n th sợi (Một lập chỉ mục) từ thánh giá đầu trong n + 1 thứ sợi, và σ n - là nghịch đảo của σ n (Đó là n + 1 ngày sợi ngang qua sợi thứ n ).
Nhóm bện B n sau đó được tạo bởi <σ 1 , 2 , 3 ,. . . , σ n-1 > . Do đó, mọi bím tóc trên B n có thể được viết là sản phẩm của-bím tóc. 1
Xác định xem hai bím tóc trên một nhóm bằng nhau không phải là một nhiệm vụ đơn giản. Nó có thể là khá rõ ràng rằng σ 1 σ 3 = σ 3 σ 1 , nhưng nó là một chút ít rõ ràng rằng ví dụ σ 2 σ 1 σ 2 = σ 1 σ 2 σ 1 . 2
Vì vậy, câu hỏi là "Làm thế nào chúng ta có thể xác định nếu hai bím tóc giống nhau?". Vâng, hai ví dụ trên mỗi đại diện cho một chút về điều này. Nói chung, các mối quan hệ sau đây, được gọi là quan hệ của Artin, là đúng:
σ i σ j = σ j σ i ; tôi - j> 1
σ i σ i + 1 σ i = σ i + 1 σ i σ i + 1
Chúng ta có thể sử dụng hai quan hệ này kết hợp với các tiên đề của nhóm để chứng minh rằng bất kỳ bím tóc nào đều bằng nhau. Do đó, hai bím tóc bằng nhau nếu ứng dụng lặp đi lặp lại của các mối quan hệ này và các tiên đề nhóm có thể chứng minh như vậy.
Bài tập
Bạn sẽ viết một chương trình hoặc chức năng để lấy hai bím tóc và xác định xem chúng có bằng nhau hay không. Bạn cũng có thể tùy ý lấy một số nguyên dương biểu thị thứ tự của nhóm.
Đây là một câu hỏi golf-code vì vậy câu trả lời sẽ được tính bằng byte, với ít byte hơn sẽ tốt hơn.
Đầu vào và đầu ra
Bạn nên biểu diễn một Braid như một danh sách các trình tạo, theo thứ tự, hoặc bất kỳ cấu trúc tương đương nào, ví dụ như vectơ). Bạn có thể đại diện cho các trình tạo ở bất kỳ dạng hợp lý nào (ví dụ: một số nguyên, hai tuple của một số nguyên dương và một boolean).
Ngang bằng với các quy tắc giải quyết vấn đề tiêu chuẩn , bạn nên xuất một trong hai giá trị riêng biệt, chấp nhận từ chối.
Các trường hợp thử nghiệm
[], [] -> 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: Lưu ý rằng mặc dù B n thỏa mãn tất cả các thuộc tính của một nhóm, hoạt động trên nhóm bện của chúng tôi không giao hoán, và do đó nhóm của chúng tôi không phải là abelian.
2: Nếu bạn muốn tự mình xác minh điều này, tôi khuyên bạn nên áp dụng σ 1 - cho cả hai bên, Nếu bạn vẽ hai cái ra giấy, hoặc mô hình hóa chúng bằng các chuỗi thực tế thì rõ ràng tại sao lại như vậy.
[],[]
[1, 4, -4, 3, 2, 1], [3, 2, 1, 2] => TRUE