गणित के सभी में से, हमेशा कुछ प्रमेय होंगे जो सभी सामान्य ज्ञान से परे हैं। इनमें से एक तथ्य यह है कि अनंत के विभिन्न आकार हैं। एक और दिलचस्प तथ्य यह विचार है कि कई असीमताएं जो विभिन्न आकार की लगती हैं, वास्तव में एक ही आकार की होती हैं। पूर्णांक के रूप में कई सम संख्याएँ हैं, जैसे कि परिमेय संख्याएँ हैं।
इस प्रश्न की सामान्य अवधारणा अनंत के विचित्र यथार्थ का सामना करना है। इस चुनौती में, आपका कार्यक्रम एक सूची का उत्पादन करेगा जो:
- किसी भी विशिष्ट समय पर, हमेशा प्रविष्टियों की एक पूरी संख्या होती है
- आखिरकार होते हैं (यदि लंबे समय तक चलने के लिए छोड़ दिया जाता है) पूरी सूची पर एक बार कोई विशिष्ट (गैर-शून्य) तर्कसंगत संख्या
- खाली स्लॉट्स की एक निर्बाध संख्या को शामिल करें (सूची में प्रविष्टियां जो अनावश्यक रूप से 0 पर सेट हैं)
- खाली स्लॉट्स का अनुपात रखें जो 100% की सीमा तक पहुंचते हैं
- प्रत्येक सकारात्मक पूर्णांक N के लिए, N की लगातार खाली स्लॉट्स के साथ अनंत स्थान हैं
चुनौती
आपकी चुनौती यह है कि उस कम से कम संभव कार्यक्रम को लिखना है जो निम्नलिखित नियमों के साथ एक विशेष सूची का उत्पादन करेगा:
- एक अनुक्रमणिका के साथ सभी प्रविष्टियाँ जो एक वर्गाकार संख्या नहीं है, को शून्य पर सेट किया जाना चाहिए। तो, पहली प्रविष्टि नॉनज़ेरो होगी, दूसरी और तीसरी शून्य होगी, चौथी नॉनज़ेरो होगी, आदि।
- सभी तर्कसंगत संख्या एक अनुचित अंश (जैसे 4/5 या 144/13) के रूप में होगी जिसे सरल बनाया गया है। अपवाद शून्य है, जो बस होगा
0
। - सभी (सकारात्मक और नकारात्मक) तर्कसंगत संख्याएं अंततः सूची में दिखाई देनी चाहिए यदि आपका कार्यक्रम लंबे समय तक और पर्याप्त मेमोरी के साथ चलता है। किसी विशेष परिमेय संख्या के लिए, आवश्यक समय मनमाने ढंग से बड़ा हो सकता है, लेकिन हमेशा परिमित, समय की मात्रा।
- यदि अनंत समय तक चलाया जाता है, तो कोई भी गैर-शून्य तर्कसंगत संख्या कभी भी दो बार नहीं दिखनी चाहिए।
नियम 3 कुछ भिन्नता के लिए अनुमति देता है, क्योंकि विभिन्न संभावित कानूनी आउटपुट की अनंत संख्या है।
आउटपुट लाइनों की एक धारा होगी। प्रत्येक पंक्ति सामान्य रूप की होगी, 5: 2/3
जहां पहली संख्या प्रवेश संख्या है, उसके बाद परिमेय संख्या है। ध्यान दें कि 1: 0
हमेशा आउटपुट की पहली पंक्ति होगी।
उदाहरण आउटपुट का स्निपेट:
1: 1/1
2: 0
3: 0
4: 2/1
5: 0
6: 0
7: 0
8: 0
9: -2/1
10: 0
etc...
नियम, विनियम और नोट्स
यह कोड गोल्फ है। मानक कोड गोल्फ नियम लागू होते हैं। साथ ही, आउटपुट में अनुमत भिन्नता के कारण, आपको कम से कम यह दिखाने की आवश्यकता है कि आप क्यों मानते हैं कि आपकी सूची में एक बार सभी संभावित तर्कसंगत संख्याएं होंगी, और यह कि आपका समाधान सही है।
EDIT: चूंकि प्राइम नंबर ने चुनौती से ध्यान नहीं हटाया था, इसलिए मैं इसे स्क्वायर नंबरों में बदल रहा हूं। यह एक ही उद्देश्य को पूरा करता है, और समाधान को भी छोटा करता है।
1: 0
हमेशा आउटपुट की पहली पंक्ति होगी। - यह आपके उदाहरण का खंडन करता है और मुझे इससे भी कोई मतलब नहीं है।