आलोचनात्मक अंतर समान अवधि की दो तार के बीच पदों, जिस पर इसी प्रतीकों अलग हैं की संख्या है।
आज्ञा देना Pबाइनरी स्ट्रिंग की लंबाई nऔर Tबाइनरी स्ट्रिंग की लंबाई हो 2n-1। हम बायीं ओर से दायीं ओर के हर- लेयरिंग प्रतिस्थापन के nबीच हैमिंग की दूरी की गणना कर सकते हैं और उन्हें एक सरणी (या सूची) में डाल सकते हैं।PnT
उदाहरण हैमिंग दूरी अनुक्रम
चलो 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 का स्कोर । जावास्क्रिप्ट