आलोचनात्मक अंतर समान अवधि की दो तार के बीच पदों, जिस पर इसी प्रतीकों अलग हैं की संख्या है।
आज्ञा देना P
बाइनरी स्ट्रिंग की लंबाई n
और T
बाइनरी स्ट्रिंग की लंबाई हो 2n-1
। हम बायीं ओर से दायीं ओर के हर- लेयरिंग प्रतिस्थापन के n
बीच हैमिंग की दूरी की गणना कर सकते हैं और उन्हें एक सरणी (या सूची) में डाल सकते हैं।P
n
T
उदाहरण हैमिंग दूरी अनुक्रम
चलो P = 101
और T = 01100
। इस जोड़ी से आपको मिलने वाली हैमिंग दूरियों का क्रम है 2,2,1
।
पराकाष्ठा की परिभाषा
अब आइए हमिंग दूरियों के दो ऐसे क्रमों पर विचार करें। उदाहरण के रूप में कहें x = (0, 2, 2, 3, 0)
और y = (2, 1, 4, 4, 2)
। हम कहते हैं कि x
और y
कर रहे हैं close
, तो y <= x <= 2*y
या यदि x <= y <= 2*x
। यहां अदिश गुणन और असमानता को तत्व के रूप में लिया जाता है। यह कहना है, दो अनुक्रमों के लिए A
और B
, A <= B iff A[i] <= B[i]
सभी सूचकांकों के लिए i
।
ध्यान दें कि हामिंग दूरियों के अनुक्रम उनकी तुलना करने के इस तरीके के तहत एक आंशिक क्रम बनाते हैं। दूसरे शब्दों में, कई जोड़े अनुक्रम न तो अधिक से अधिक या बराबर हैं और न ही एक दूसरे से कम या बराबर हैं। उदाहरण के लिए (1,2)
और (2,1)
।
इसलिए ऊपर दिए गए उदाहरण का उपयोग करना, (0, 2, 2, 3, 0) <= 2*(2, 1, 4, 4, 2) = (4, 2, 8, 8, 4)
लेकिन (0, 2, 2, 3, 0)
इससे बड़ा नहीं है (2, 1, 4, 4, 2)
। इसके अलावा (2, 1, 4, 4, 2)
या उससे छोटा नहीं है 2*(0, 2, 2, 3, 0) = (0, 4, 4, 6, 0)
। परिणामस्वरूप x
और y
एक दूसरे के करीब नहीं हैं।
कार्य
बढ़ाने के लिए n
पर शुरू n=1
, द्विआधारी तार के सभी संभव जोड़े पर विचार P
लंबाई की n
और T
लंबाई की 2n-1
। इस 2^(n+2n-1)
तरह की जोड़ियाँ हैं और इसलिए हैमिंग दूरी के कई क्रम हैं। हालांकि उन दृश्यों में से कई समान होंगे। कार्य हेमिंग दूरी अनुक्रमों के सबसे बड़े सेट के आकार का पता लगाना है ताकि कोई भी दो क्रम एक दूसरे के करीब न हों।
आपका कोड प्रति मूल्य एक नंबर आउटपुट होना चाहिए n
।
स्कोर
आपका स्कोर मोटे तौर पर बोल रहा है कि n
आपका कोड 5 मिनट में मेरी मशीन पर पहुंच जाता है (लेकिन पढ़ें)। समय कुल चल रहे समय के लिए है, न कि केवल उसके लिए समय n
।
गैर-इष्टतम उत्तरों के लिए स्कोर देने के लिए, क्योंकि इष्टतम उत्तर ढूंढना कठिन होने की संभावना है, हमें थोड़ी सूक्ष्म स्कोरिंग प्रणाली की आवश्यकता होगी। आपका स्कोर उच्चतम मूल्य है n
जिसके लिए किसी और ने किसी भी आकार के लिए उच्च सही उत्तर पोस्ट नहीं किया है जो इसके बराबर छोटा है। उदाहरण के लिए, यदि आप आउटपुट करते हैं 2, 4, 21
और कोई और आउटपुट करता है 2, 5, 15
तो आप केवल स्कोर 1
करेंगे क्योंकि किसी और के लिए बेहतर उत्तर होगा n = 2
। यदि आप आउटपुट करते हैं 2, 5, 21
तो आप 3
कोई भी स्कोर नहीं करेंगे, जो कोई और आउटपुट देता है क्योंकि वे उत्तर सभी इष्टतम हैं। स्पष्ट रूप से यदि आपके पास सभी इष्टतम उत्तर हैं तो आपको उच्चतम n
पद के लिए स्कोर मिलेगा । हालांकि, भले ही आपका जवाब इष्टतम न हो, फिर भी आप स्कोर प्राप्त कर सकते हैं यदि कोई और इसे हरा नहीं सकता है।
उदाहरण उत्तर और काम उदाहरण
(यह उत्तर अभी तक अनियंत्रित हैं। स्वतंत्र सत्यापन कृतज्ञतापूर्वक प्राप्त होगा।)
ETHproductions के लिए धन्यवाद:
- n = 1 2 देता है।
- n = 2 5 देता है।
- n = 3 21 देता है।
आइए n = 2
अधिक विस्तार से देखें। इस मामले में हैमिंग डिस्टेंस सीक्वेंस की पूरी सूची (यहां ट्यूपल्स द्वारा दर्शाई गई है):
[(0, 0), (0, 1), (0, 2), (1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)]
हम देख सकते हैं कि (0,0)
किसी अन्य टपल के करीब नहीं है। वास्तव में अगर हम ले (0, 0)
, (0, 1)
, (1, 0)
, (2, 1)
, (1,2)
उन tuples के तो कोई भी अन्य लोगों में से किसी के करीब हैं। यह के 5
लिए एक स्कोर देता है n = 2
।
के लिए n = 3
अलग आलोचनात्मक अंतर दृश्यों की पूरी सूची है:
[(0, 0, 0), (0, 0, 1), (0, 1, 1), (0, 1, 2), (0, 1, 3), (0, 2, 1), (0, 2, 2), (0, 2, 3), (0, 3, 0), (0, 3, 1), (1, 0, 0), (1, 0, 1), (1, 0, 2), (1, 1, 0), (1, 1, 1), (1, 1, 2), (1, 1, 3), (1, 2, 0), (1, 2, 1), (1, 2, 2), (1, 2, 3), (1, 3, 0), (1, 3, 1), (1, 3, 2), (2, 0, 1), (2, 0, 2), (2, 0, 3), (2, 1, 0), (2, 1, 1), (2, 1, 2), (2, 1, 3), (2, 2, 0), (2, 2, 1), (2, 2, 2), (2, 2, 3), (2, 3, 1), (2, 3, 2), (2, 3, 3), (3, 0, 2), (3, 0, 3), (3, 1, 0), (3, 1, 1), (3, 1, 2), (3, 2, 0), (3, 2, 1), (3, 2, 2), (3, 3, 2), (3, 3, 3)]
उन 48
दृश्यों में से, हम आकार का एक सेट निकाल सकते हैं 21
ताकि उस सेट में कोई भी जोड़ी एक दूसरे के करीब न हो।
भाषाएं और पुस्तकालय
आप अपनी पसंद की किसी भी उपलब्ध भाषा और लाइब्रेरी का उपयोग कर सकते हैं। संभव होने पर, अपने कोड को चलाने में सक्षम होना अच्छा होगा इसलिए कृपया अपने कोड को लिनक्स में कैसे चलाएं / संकलित करें, यदि संभव हो तो पूरा विवरण शामिल करें।
माई मशीन द टाइमिंग को मेरी 64-बिट मशीन पर चलाया जाएगा। यह 8GB RAM, AMD FX-8350 Eight-Core Processor और Radeon HD 4250 के साथ एक मानक ubuntu स्थापित है। इसका मतलब यह भी है कि मुझे आपका कोड चलाने में सक्षम होना चाहिए।
उत्तर देना
- क्रिश्चियन सिवर्स द्वारा 4 का स्कोर 2, 5, 21, 83, 361। सी ++
- F2n 37t .k द्वारा 2, 5, 21, 83, 372 के लिए 5 का स्कोर । जावास्क्रिप्ट