एक गाँठ और उसके पार के संकेतों के डॉकर संकेतन को देखते हुए, इसकी ब्रैकेट बहुपद की गणना करें।
हालाँकि, अधिक तकनीकी परिभाषाएँ हैं, इस चुनौती के लिए यह एक गाँठ के रूप में सोचने के लिए पर्याप्त है क्योंकि किसी स्ट्रिंग के दो सिरों को एक साथ जोड़कर शारीरिक रूप से बनाई गई चीज़। चूंकि गांठें तीन आयामों में मौजूद होती हैं, जब हम उन्हें कागज पर खींचते हैं, तो हम गाँठ के आरेखों का उपयोग करते हैं - दो-आयामी अनुमान जिसमें क्रॉसिंग बिल्कुल दो पंक्तियों के होते हैं, एक ओवर और एक अंडर।
यहाँ (b) और (c) एक ही गाँठ के अलग-अलग आरेख हैं।
हम कागज पर एक गाँठ आरेख का प्रतिनिधित्व कैसे करते हैं? हम में से अधिकांश रेम्ब्रांट नहीं हैं, इसलिए हम डॉकर संकेतन पर भरोसा करते हैं , जो निम्नानुसार काम करता है:
गाँठ पर एक मनमाना शुरुआती बिंदु उठाओ। निम्नलिखित मोडिफिकेशन के साथ, 1 से शुरू होकर, गाँठ के साथ एक मनमाना दिशा में चलें और आपके द्वारा क्रॉस किए गए क्रॉसिंग को नंबर दें: यदि यह एक समान संख्या है और आप वर्तमान में क्रॉसिंग पर जा रहे हैं , तो उस संख्या को भी नकार दें। अंत में, 1, 3, 5, आदि के समान सम संख्याओं को चुनें।
आइए एक उदाहरण का प्रयास करें:
इस गाँठ पर, हमने "1" को अपने शुरुआती बिंदु के रूप में चुना और आगे और दाईं ओर बढ़ने के लिए आगे बढ़े। हर बार जब हम रस्सी के दूसरे टुकड़े के ऊपर या उसके नीचे जाते हैं , तो हम अगली प्राकृतिक संख्या को पार करते हैं। हम एक क्रॉसिंग पर जाने वाले स्ट्रैंड्स के अनुरूप सम संख्याओं को नकारते हैं, उदाहरण [3,-12]
के लिए आरेख में। तो, इस आरेख का प्रतिनिधित्व किया जाएगा [[1,6],[2,5],[3,-12],[-4,9],[7,8],[-10,11]]
। १, ३, ५, List, इत्यादि के मित्रों की सूची हमें देता है [6,-12,2,8,-4,-10]
।
यहाँ ध्यान देने योग्य बातें हैं। सबसे पहले, डॉकर संकेतन किसी दिए गए गाँठ के लिए अद्वितीय नहीं है , क्योंकि हम एक मनमाना शुरुआती बिंदु और दिशा चुन सकते हैं। लेकिन, संकेतन को देखते हुए, कोई पूरी तरह से गाँठ की संरचना को निर्धारित कर सकता है (तकनीकी रूप से, इसके प्रमुख गाँठ घटकों के प्रतिबिंब तक)। जबकि सभी डॉकर नोटेशन संभव गांठ नहीं बना सकते हैं, इस समस्या में आप मान सकते हैं कि इनपुट एक वास्तविक गाँठ का प्रतिनिधित्व करता है।
एक गाँठ के प्रतिबिंबों के बीच अस्पष्टता से बचने के लिए, और चुनौती को हल करने के लिए आसान बनाने के लिए, आपको इनपुट के रूप में क्रॉसिंग संकेतों की एक सूची भी दी जाएगी ।
एक सकारात्मक क्रॉसिंग में निचली रेखा ऊपरी रेखा के दृष्टिकोण से बाईं ओर जाती है। एक नकारात्मक क्रॉसिंग में यह दाईं ओर जाता है। ध्यान दें कि गाँठ के आसपास जाने की दिशा पीछे (यानी दोनों पीछे से अधिक लाइन और नीचे पार संकेत नहीं बदलता है लाइन)। हमारे उदाहरण में क्रॉसिंग के संकेत हैं [-1,-1,-1,1,-1,1]
। उन्हें उसी क्रम में दिया जाता है जैसे कि डॉकर अंकन, यानी क्रॉसिंग नंबर 1, 3, 5, 7, आदि के लिए।
इस चुनौती में हम एक गाँठ के ब्रैकेट बहुपद की गणना करेंगे । यह एक ऐसी वस्तु है जो गाँठ आरेख के अधिकांश परिवर्तन के लिए अपरिवर्तनीय है - एक अवधारणा जो इसे गाँठ सिद्धांत विश्लेषण में सर्वोच्च रूप से उपयोगी बनाती है। (फिर से, अधिकांश गाँठ सिद्धांतकार ब्रैन्स बहुपद को जोंस बहुपद की गणना के लिए एक मध्यवर्ती उत्पाद के रूप में गणना करते हैं, जो सभी परिवर्तनों के पार अपरिवर्तनीय है , लेकिन हम ऐसा नहीं करेंगे।) तो यह कैसे काम करता है? ब्रैकेट बहुपद एक लॉरेंट बहुपद है - एक जिसमें चर (पारंपरिक नाम ) को नकारात्मक शक्तियों के साथ-साथ सकारात्मक भी उठाया जा सकता है।
दिए गए गाँठ आरेख लिए, बहुपद के लिए तीन नियम, जिन्हें⟩ D di के रूप में दर्शाया गया है , ये हैं:
ऊपर की छवि में, पहले आरेख में उल्लिखित क्रॉसिंग, जो कि फॉर्म का है , को दूसरे आंकड़े (उर्फ पॉजिटिव स्मूथिंग ) में या तीसरे आंकड़े ( नेगेटिव स्मूथिंग ) में बदल दिया जा सकता है ।
अभी तक उलझन में है? आइए एक उदाहरण करते हैं, के ब्रैकेट बहुपद को खोजने की कोशिश कर रहे हैं (नोट: यह दो गांठों को एक साथ जोड़ा गया है। इस प्रकार का आरेख इस चुनौती में एक संभावित इनपुट नहीं होगा क्योंकि इनपुट केवल एकल समुद्री मील होंगे, लेकिन यह एक स्वरूप के रूप में प्रकट हो सकता है। एल्गोरिथ्म में मध्यवर्ती परिणाम।)
हम पहले नियम 3 का उपयोग करते हैं
हम नियम का उपयोग फिर से दोनों नए समुद्री मील पर करते हैं
हम इन 4 नए समुद्री मील को पहले समीकरण में प्रतिस्थापित करते हैं।
इन 4 में से नियम 1 और 2 को लागू करना हमें बताता है
तो, यह हमें बताओ
गाँठ सिद्धांत के लिए अपना संक्षिप्त परिचय पूरा करने पर बधाई!
इनपुट
दो सूचियाँ:
डॉकर संकेतन, उदा
[6,-12,2,8,-4,-10]
। क्रॉसिंग की संख्या 1 से शुरू होनी चाहिए। इसी विषम संख्या के[1,3,5,7,...]
निहित हैं और इसे इनपुट के रूप में प्रदान नहीं किया जाना चाहिए ।संकेत
1
/ (-1
या यदि आप पसंद करते हैं0
/1
याfalse
/true
या'+'
/'-'
) क्रॉसिंग Dowker अंकन, जैसे करने के लिए इसी के लिए[-1,-1,-1,1,-1,1]
।
एक जोड़ी सूची के बजाय, आपके पास जोड़े की एक सूची हो सकती है, जैसे [[6,-1],[-12,-1],...
उत्पादन
उदाहरण के लिए , बहुपद को प्रिंट या वापस करें[[1,-2],[5,0],[1,1],[-1,3]]
[0,1,0,5,1,0,-1]
नियम
यह है एक कोड-गोल्फ चुनौती है। मानक खामियों में से कोई भी इस्तेमाल नहीं किया जा सकता है, और पुस्तकालयों में डॉकर नोटेशन या ब्रैकेट पॉलीओनियम्स की गणना करने के लिए उपकरण हैं, उनका उपयोग नहीं किया जा सकता है। (इन पुस्तकालयों वाली भाषा का अभी भी उपयोग किया जा सकता है, सिर्फ पुस्तकालय / पैकेज नहीं)।
टेस्ट
// 4-tuples of [dowker_notation, crossing_signs, expected_result, description]
[
[[],[],[[1,0]],"unknot"],
[[2],[1],[[-1,3]],"unknot with a half-twist (positive crossing)"],
[[2],[-1],[[-1,-3]],"unknot with a half-twist (negative crossing)"],
[[2,4],[1,1],[[1,6]],"unknot with two half-twists (positive crossings)"],
[[4,6,2],[1,1,1],[[1,-7],[-1,-3],[-1,5]],"right-handed trefoil knot, 3_1"],
[[4,6,2,8],[-1,1,-1,1],[[1,-8],[-1,-4],[1,0],[-1,4],[1,8]],"figure-eight knot, 4_1"],
[[6,8,10,2,4],[-1,-1,-1,-1,-1],[[-1,-7],[-1,1],[1,5],[-1,9],[1,13]],"pentafoil knot, 5_1"],
[[6,8,10,4,2],[-1,-1,-1,-1,-1],[[-1,-11],[1,-7],[-2,-3],[1,1],[-1,5],[1,9]],"three-twist knot, 5_2"],
[[4,8,10,2,12,6],[1,1,-1,1,-1,-1],[[-1,-12],[2,-8],[-2,-4],[3,0],[-2,4],[2,8],[-1,12]],"6_3"],
[[4,6,2,10,12,8],[-1,-1,-1,-1,-1,-1],[[1,-10],[2,-2],[-2,2],[1,6],[-2,10],[1,14]],"granny knot (sum of two identical trefoils)"],
[[4,6,2,-10,-12,-8],[1,1,1,1,1,1],[[1,-14],[-2,-10],[1,-6],[-2,-2],[2,2],[1,10]],"square knot (sum of two mirrored trefoils)"],
[[6,-12,2,8,-4,-10],[-1,-1,-1,1,-1,1],[[1,-2],[1,6],[-1,10]],"example knot"]
]
बाहरी संसाधन
चुनौती के लिए आवश्यक नहीं है, लेकिन यदि आप रुचि रखते हैं:
डॉकर नोटेशन की मेरी परिभाषा में गलती पकड़ने के लिए @ChasBrown और @ H.Pwiz को धन्यवाद