श्रृंखला के बारे में
सबसे पहले, आप इसे किसी अन्य कोड गोल्फ चुनौती की तरह मान सकते हैं, और श्रृंखला के बारे में चिंता किए बिना इसका जवाब दे सकते हैं। हालांकि, सभी चुनौतियों के बीच एक लीडरबोर्ड है। आप लीडरबोर्ड के साथ पहली पोस्ट में श्रृंखला के बारे में कुछ और जानकारी पा सकते हैं ।
छेद 8: एक अनंत सूची में फेरबदल करें
आपको एक फ़ंक्शन या प्रोग्राम लिखना चाहिए जो इनपुट के रूप में एक अनंत सूची लेता है और उस सूची का एक फेरबदल संस्करण लौटाता है।
अनंत I / O के बारे में
इस चुनौती के लिए आप इनपुट ले सकते हैं और आउटपुट प्राप्त कर सकते हैं:
- आप या तो सकारात्मक पूर्णांक की सूची, या उसके बाद एक स्ट्रिंग प्रतिनिधित्व, या एक स्ट्रिंग या मुद्रण योग्य ASCII वर्णों की सूची (0x20 से 0x7E, समावेशी) ले सकते हैं। आउटपुट स्वरूप को इनपुट प्रारूप से मेल खाना चाहिए। मैं अभी से डेटा को "सूची" के रूप में संदर्भित करूंगा, चाहे आप कोई भी विकल्प चुनें।
- आप सूची को अनंत मानक इनपुट स्ट्रीम से पढ़ सकते हैं और आउटपुट को अनंत मानक आउटपुट स्ट्रीम में लगातार लिख सकते हैं। समाधान किसी विशेष मूल्य या मूल्यों के अनुक्रम पर निर्भर नहीं होना चाहिए, यह सुनिश्चित करने के लिए कि आउटपुट स्ट्रीम नियमित रूप से लिखा और फ्लश किया जाता है (उदाहरण के लिए आप
5
इनपुट सूची में जब भी आउटपुट लिख नहीं सकते हैं )। बेशक, यदि आप किसी सूची का स्ट्रिंग प्रतिनिधित्व पढ़ते हैं, तो सूची विभाजक का सामना करने तक इंतजार करना ठीक है। - उन भाषाओं में जो उनका समर्थन करती हैं, आप एक फ़ंक्शन लिख सकते हैं जो एक आलसी अनंत सूची या स्ट्रिंग देता है।
- ऐसी भाषाओं में जो उनका समर्थन करती हैं आप एक अनंत जनरेटर को लागू कर सकते हैं जो इनपुट के रूप में एक और जनरेटर लेता है।
- वैकल्पिक रूप से, आप एक फ़ंक्शन लिख सकते हैं जो कोई तर्क नहीं लेता है और प्रत्येक बार इसे कहा जाता है एक आउटपुट मूल्य देता है। इस मामले में, आप मान सकते हैं कि एक फ़ंक्शन को परिभाषित किया गया है जो कोई तर्क नहीं लेता है और अगली इनपुट वैल्यू को हर बार इसे वापस लौटाता है। आप स्वतंत्र रूप से उस फ़ंक्शन का नाम चुन सकते हैं।
आप मान सकते हैं कि आपका कार्यक्रम हमेशा के लिए चलता है और वह अनंत स्मृति उपलब्ध है। (इसे हल करने के लिए एक सीमित मात्रा में मेमोरी संभव है, लेकिन इसका मतलब यह है कि आपको मेमोरी को लीक करने की अनुमति है।)
यादृच्छिकता के बारे में
किसी भी मूल्य v के लिए जिसे अनंत इनपुट की स्थिति i पर पढ़ा जाता है , इसके लिए कोई सकारात्मक संभावना होनी चाहिए कि यह अनंत आउटपुट के i-9 से i + 9 तक किसी भी स्थिति में समाप्त हो सकती है (जब तक कि स्थिति नकारात्मक नहीं होगी )। इन संभावनाओं को अलग-अलग आउटपुट स्थितियों या अलग-अलग इनपुट स्थितियों के लिए समान नहीं होना चाहिए। यह ठीक है अगर आपका समाधान उन मूल्यों को अन्य स्थिति में फेरबदल कर सकता है जो आगे दूर हैं।
इसलिए, यह आवश्यक नहीं है कि आपका समाधान सूची से पहले मूल्य को बहुत दूर कर सकता है, या यह पहली स्थिति तक बहुत देर के मूल्य को फेरबदल कर सकता है, हालांकि यह ठीक है अगर ऐसा होता है, जब तक कि सभी चरण 9 चरणों से नहीं हो जाते। इनपुट संभव हैं।
उदाहरण के लिए यदि आपने निम्न स्ट्रिंग को इनपुट के रूप में लिया है, तो ___
उन सभी पदों को इंगित करता X
है जो आउटपुट में समाप्त होने में सक्षम होने चाहिए:
___________________
abcdefghijklmnopqrstuvwxyzXabcdefghijklmnopqrstuvwxyz...
यदि आपकी भाषा में अंतर्निहित यादृच्छिक संख्या जनरेटर का अभाव है या आप इसका उपयोग नहीं करना चाहते हैं, तो आप इनपुट के रूप में एक अतिरिक्त बीज मान ले सकते हैं, और बीज का उपयोग करके अपने स्वयं के उपयुक्त RNG को लागू कर सकते हैं । यह पृष्ठ उसके लिए सहायक हो सकता है।
वास्तविक समाधान के बावजूद आपका समाधान उपयोग करता है, यह निश्चित रूप से परिमित (लेकिन मनमाना) समय के बाद अगले मूल्य का उत्पादन करना चाहिए ।
कृपया इस बारे में एक संक्षिप्त विवरण शामिल करें कि आपका कार्यान्वयन इन आवश्यकताओं को कैसे पूरा करता है।
स्कोरिंग
यह कोड-गोल्फ है , इसलिए सबसे छोटा वैध उत्तर - बाइट्स में मापा जाता है - जीतता है।
लीडरबोर्ड
श्रृंखला की पहली पोस्ट एक लीडरबोर्ड उत्पन्न करती है।
यह सुनिश्चित करने के लिए कि आपके उत्तर दिखाए गए हैं, कृपया प्रत्येक मार्कलाइन के साथ निम्नलिखित मार्कडाउन टेम्प्लेट का उपयोग करके प्रत्येक उत्तर को शुरू करें:
# Language Name, N bytes
N
आपके प्रस्तुत करने का आकार कहां है। यदि आप अपने स्कोर में सुधार करते हैं, तो आप पुराने अंकों को हेडलाइन में रख सकते हैं , उनके माध्यम से स्ट्राइक करके। उदाहरण के लिए:
# Ruby, <s>104</s> <s>101</s> 96 bytes
(भाषा को वर्तमान में नहीं दिखाया गया है, लेकिन स्निपेट की आवश्यकता होती है और इसे पार्स किया जाता है, और मैं भविष्य में एक उप-भाषा लीडरबोर्ड जोड़ सकता हूं।)