... आह क्षमा करें, यहाँ कोई पॉपकॉर्न नहीं है, बस POPCNT है।
सबसे छोटे प्रोग्राम या फ़ंक्शन को लिखें जो संख्याओं में लेता है nऔर संख्याओं के द्विआधारी प्रतिनिधित्व (पॉपकाउंट) में 1 बिट्स की संख्या के आरोही क्रम में सभी पूर्णांकों को 0 से 2 एन - 1 तक आउटपुट करता है । कोई डुप्लिकेट की अनुमति नहीं है।
समान पॉपकाउंट वाली संख्याओं का क्रम कार्यान्वयन-परिभाषित है।
उदाहरण के लिए, n = 3इन सभी आउटपुट मान्य हैं:
0, 1, 2, 4, 3, 5, 6, 7
[0, 4, 1, 2, 5, 3, 6, 7]
0 4 2 1 6 5 3 7
इनपुट और आउटपुट प्रारूप कार्यान्वयन-परिभाषित है जो कोड को आगे बढ़ाने के लिए भाषा सुविधाओं के उपयोग की अनुमति देता है। आउटपुट पर कुछ प्रतिबंध हैं:
- दशमलव प्रारूप में संख्याओं का आउटपुट होना चाहिए।
आउटपुट में संख्याओं के बीच एक उचित विभाजक होना चाहिए (अनुगामी विभाजक अनुमत है, लेकिन अग्रणी नहीं है)।
लाइन फ़ीड (
\n), टैब (\t), अंतरिक्ष,,,.,;,|,-,_,/काफी उचित विभाजक हैं। मैं सुंदर मुद्रण के लिए अतिरिक्त स्थान नहीं रखता, लेकिन विभाजक के रूप में अक्षर या अंकों का उपयोग नहीं करता।- संख्या और विभाजक से घिरा हो सकता है
[ ],{ }या किसी भी सरणी या सूची संकेतन। - ऊपर बताई गई किसी और चीज़ को न छापें।
बक्शीश
यदि आपका समाधान मक्खी पर संख्या उत्पन्न कर सकता है, तो अपने स्कोर को 0.5 से गुणा करें । इस बोनस की भावना यह है कि यदि आप सीधे अपने मुद्रण समाधान को एक जनरेटर में परिवर्तित करते हैं, तो जनरेटर केवल सबसे अधिक O (n) मेमोरी का उपयोग करता है जहां n ऊपर बिट्स की संख्या है जैसा कि ऊपर परिभाषित किया गया है। (आपको वास्तव में अपने समाधान को जनरेटर में बदलना नहीं है)। ध्यान दें कि जब मैं n <= 28 लगाता हूं, तो सभी नंबरों को स्टोर करने के लिए आवश्यक मेमोरी अभी भी तेजी से बढ़ती है, और एक भोली सॉर्टिंग समाधान n = 28 पर कम से कम 4 जीबी मेमोरी बढ़ाएगा।
कृपया इस बोनस का दावा करने से पहले यह बताएं कि आपका समाधान कैसे काम करता है।