यदि आप ब्रैड-थ्योरी से परिचित नहीं हैं तो मेरा सुझाव है कि आप इसे पहले पढ़ें । यह प्रश्न मानता है कि आप कम से कम हाथ में अवधारणाओं से परिचित हैं और मान लेते हैं कि आप समूह-सिद्धांत से अच्छी तरह परिचित हैं
हमें परिभाषित करते हैं σ n चोटी जिसमें होने के लिए n से अधिक शीर्ष पार से वें किनारा (एक अनुक्रमित) n + 1 वें किनारा, और σ n - का उल्टा होने की σ n (यही कारण है n + 1 वें स्ट्रैंड n वें स्ट्रैंड को पार करता है )।
चोटी समूह बी एन तब से उत्पन्न होता है <σ 1 , σ 2 , σ 3 ,। । । ,, एन -1 > । इस प्रकार B n पर प्रत्येक ब्रैड को bra-braids के उत्पाद के रूप में लिखा जा सकता है। 1
यह निर्धारित करना कि एक समूह पर दो ब्रेड्स समान हैं, एक सरल कार्य नहीं है। यह बहुत स्पष्ट है कि हो सकता है σ 1 σ 3 = σ 3 σ 1 , लेकिन यह थोड़ा कम स्पष्ट है कि उदाहरण के लिए σ 2 σ 1 σ 2 = σ 1 σ 2 σ 1 । 2
तो सवाल यह है कि "हम कैसे निर्धारित कर सकते हैं कि दो ब्रैड समान हैं?"। वैसे प्रत्येक के ऊपर दो उदाहरण इस का एक सा प्रतिनिधित्व करते हैं। सामान्य रूप से निम्नलिखित संबंध, जिसे आर्टिन के संबंध कहा जाता है, सत्य हैं:
σ i σ j = σ j σ i ; मैं - ज> १
σ मैं σ i + 1 σ मैं = σ i + 1 σ मैं σ i + 1
हम इन दो संबंधों का उपयोग समूह स्वयंसिद्धों के साथ मिलकर यह साबित करने के लिए कर सकते हैं कि कोई समान ब्रेड्स समान हैं। इस प्रकार दो ब्रैड समान हैं यदि इन संबंधों के दोहराए गए अनुप्रयोग और समूह स्वयंसिद्ध प्रदर्शित कर सकते हैं।
कार्य
आप दो ब्रैड लेने के लिए एक प्रोग्राम या फ़ंक्शन लिखेंगे और यह निर्धारित करेंगे कि वे समान हैं या नहीं। आप वैकल्पिक रूप से समूह के आदेश का प्रतिनिधित्व करने वाला एक सकारात्मक पूर्णांक भी ले सकते हैं।
यह एक कोड-गोल्फ प्रश्न है, इसलिए उत्तर बाइट्स में दिए जाएंगे, कम बाइट्स बेहतर होने के साथ।
इनपुट और आउटपुट
आपको जनरेटर की एक आदेशित सूची के रूप में एक ब्रैड का प्रतिनिधित्व करना चाहिए, (या किसी भी समकक्ष संरचना, जैसे वेक्टर)। आप किसी भी उचित रूप में जनरेटर का प्रतिनिधित्व कर सकते हैं (जैसे एक पूर्णांक, एक सकारात्मक पूर्णांक और एक बूलियन का दो टुपल)।
मानक डिस्चार्ज-समस्या नियमों के साथ आपको दो अलग-अलग मूल्यों में से एक का उत्पादन करना चाहिए, एक अस्वीकार को स्वीकार करना चाहिए।
परीक्षण के मामलों
[], [] -> 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 एक समूह के सभी गुणों को संतुष्ट करता है, हमारे ब्रैड समूह पर ऑपरेशन सराहनीय नहीं है, और इस प्रकार हमारा समूह abelian नहीं है।
2: आप खुद के लिए इस की पुष्टि मैं लागू करने का सुझाव देते हैं करना चाहते हैं तो σ 1 - आप कागज पर दो को बाहर निकालने हैं, तो दोनों पक्षों के लिए, या उन्हें वास्तविक तार के साथ मॉडल यह क्यों यह मामला है स्पष्ट हो जाना चाहिए।
[],[]
[1, 4, -4, 3, 2, 1], [3, 2, 1, 2] => TRUE