कार्यकारी सारांश
इनपुट को देखते हुए k
, पूर्णांकों का एक विभाजन को खोजने 1
के लिए n
में k
सबसे बड़ा के लिए योग से मुक्त सबसेट n
10 मिनट के भीतर आप कर सकते हैं।
बैकग्राउंडर: शूर नंबर
एक सेट A
है योग से मुक्त करता है, तो उसकी स्व-राशि A + A = { x + y | x, y in A}
इसके साथ आम में कोई तत्व है।
प्रत्येक सकारात्मक पूर्णांक के लिए k
सबसे बड़ा पूर्णांक होता है S(k)
जैसे कि सेट {1, 2, ..., S(k)}
को k
योग-मुक्त सबसेट में विभाजित किया जा सकता है । इस नंबर को k th Schur नंबर (OEIS A045652 ) कहा जाता है ।
उदाहरण के लिए, S(2) = 4
। हम के {1, 2, 3, 4}
रूप में विभाजन कर सकते हैं {1, 4}, {2, 3}
, और वह दो योगों वाले सबसे अच्छे उप-योगों में अद्वितीय विभाजन है, लेकिन अब हम 5
किसी भी हिस्से में नहीं जोड़ सकते हैं ।
चुनौती
एक निर्धारक कार्यक्रम लिखिए जो निम्नलिखित कार्य करता है:
k
इनपुट के रूप में एक सकारात्मक पूर्णांक लें- स्टडआउट के लिए वर्तमान यूनिक्स टाइमस्टैम्प लिखें
- के विभाजन का एक अनुक्रम आउटपुट
1
के लिएn
मेंk
बढ़ाने के लिए योग से मुक्त सबसेटn
, वर्तमान यूनिक्स टाइमस्टैम्प के साथ प्रत्येक अनुक्रम के बाद।
विजेता वह प्रोग्राम होगा जो n
इनपुट दिए जाने पर मेरे कंप्यूटर पर 10 मिनट के भीतर सबसे बड़े विभाजन को प्रिंट करता है 5
। n
तीन से अधिक रन के औसत के लिए विभाजन को खोजने के लिए सबसे तेज समय से संबंध टूट जाएगा : यही कारण है कि आउटपुट में टाइमलैम्प शामिल होना चाहिए।
महत्वपूर्ण विवरण:
- मेरे पास Ubuntu Precise है, इसलिए यदि आपकी भाषा समर्थित नहीं है तो मैं इसे स्कोर नहीं कर पाऊंगा।
- मेरे पास एक Intel Core2 क्वाड सीपीयू है, इसलिए यदि आप मल्टीथ्रेडिंग का उपयोग करना चाहते हैं तो 4 थ्रेड से अधिक का उपयोग करने का कोई मतलब नहीं है।
- यदि आप चाहते हैं कि मैं किसी विशेष संकलक झंडे या कार्यान्वयन का उपयोग करूं, तो आपके उत्तर में स्पष्ट रूप से दस्तावेज।
- इनपुट को संभालने के लिए आपको अपना कोड विशेष-मामला नहीं बनाना चाहिए
5
। - आपको अपने द्वारा खोजे गए हर सुधार को आउटपुट करने की आवश्यकता नहीं है। उदाहरण के लिए इनपुट के लिए
2
आप केवल विभाजन को ही आउटपुट कर सकते हैंn = 4
। हालाँकि, यदि आप पहले 10 मिनट में कुछ भी आउटपुट नहीं करते हैं, तो मैं इसे स्कोर करूँगाn = 0
।
n=59
, और कम से कम की अनुमति दी संख्या की सबसे बड़ी संख्या के आधार पर क्रमितnextN
देता हैn=64
। अस्वीकृत संख्या सूची की लंबाई के आधार पर छंटनी (जिसमें दोहराव हो सकता है) बहुत जल्दी एक सुंदरn=30
पैटर्न की ओर ले जाती है ।