पहचान
पात्रों की एक ग्रिड पर विचार करें f A\/जैसे कि
f f f
A
A / \
\ / A
A \/
/
\/
कहाँ पे:
fएक नल का प्रतिनिधित्व करता है जो पानी की एक धारा को नीचे की ओर डालता हैAऊपर पानी की धारा bifurcates तो ठीक आधा बाएं जाती है और ठीक आधी दाईं ओर जाती है\पानी की धारा को एक इकाई द्वारा दाईं ओर ऊपर स्थानांतरित करता है/एक इकाई द्वारा बाईं ओर ऊपर पानी की धारा को स्थानांतरित करता है- संयोजन
\/अनंत क्षमता के साथ एक गर्त बनाता है जो इसके ऊपर पानी की धाराओं को इकट्ठा करता है [space]खाली जगह है जहां से पानी जा सकता है
इससे हम पानी की पथ की कल्पना कर सकते हैं ( *क्योंकि यह नल से निकलता है और कुंड में या ग्रिड क्षेत्र से बाहर निकल जाता है):
f f f <-- first second and third faucets
* * *A*
* *A*/ \*
\*/ * *A <-- a '*' is not drawn to the right of this A because it would be out of the 9×7 bounds
* *A*\/ <-- upper trough
**/ *
\/ * <-- lower trough
3 faucets उत्पादन पानी की एक ही मात्रा में एक समय में हम देख सकते हैं कि मान लिया
- पहले नल का सारा पानी निचले कुंड में जाता है।
- दूसरे नल के पानी का आधा हिस्सा निचले कुंड में जाता है और दूसरा आधा निचले कुंड के बीच विभाजित होकर ग्रिड से गिरता है।
- तीसरे नल के पानी का एक चौथाई हिस्सा निचले गर्त में जाता है, एक चौथाई ग्रिड के तल से गिरता है, एक चौथाई ऊपरी गर्त में जाता है, और एक चौथाई ग्रिड से दाईं ओर गिरता है।
इससे हम यह बता सकते हैं कि (1 + 3/4 + 1/4 + 1/4) / 3 = 75%पानी कुंडों से पकड़ा गया है और (1/4 + 1/4 + 1/4) / 3 = 25%ग्रिड से गिर गया है।
चुनौतियां
आप इस ASCII जल प्रवाह सेटअप से संबंधित किसी भी या सभी चुनौतियों को पूरा कर सकते हैं। वे सभी कोड-गोल्फ हैं, प्रत्येक चुनौती के लिए सबसे छोटा जवाब विजेता है। स्वीकृत उत्तर वह व्यक्ति होगा जो टाई-ब्रेकर के रूप में कुल कोड लंबाई के साथ, सबसे अधिक चुनौतियों को पूरा करता है।
चुनौती 1
एक प्रोग्राम लिखें जो पानी के अंश का उत्पादन करता है जो किसी दिए गए ग्रिड के लिए गर्त में बहता है। ऊपर दिए गए उदाहरण का आउटपुट बस होगा 0.75।
चुनौती 2
एक प्रोग्राम लिखें, जो ग्रिड दिया गया हो, *जैसा कि मैंने ऊपर किया है, उन स्थानों पर पानी के बहाव को खींचता है। आपको अंतरिक्ष वर्णों के अलावा कुछ भी अधिलेखित नहीं करना चाहिए और ग्रिड का आकार नहीं बदलना चाहिए। तो जैसे कुछ के लिए
f
/A
कुछ भी करने की जरूरत नहीं है, हालांकि पानी ए के दोनों तरफ बहता है, इसे बिना हटाए बाईं ओर /नहीं खींचा जा सकता है और इसे 2 × 2 ग्रिड को बड़ा किए बिना दाईं ओर नहीं खींचा जा सकता है।
चुनौती 3 (अपडेट किया गया)
एक प्रोग्राम लिखें जो दो गैर-नकारात्मक पूर्णांक, कुल T और K (T> = =) रखने के लिए राशि लेता है। जेनरेट करें और एक ग्रिड को बिल्कुल fऐसे बनाएं कि जब नल नल से पानी की टी यूनिट निकाले, तो वास्तव में K गर्त में बह जाएगा। यदि किसी विशेष (T, K) जोड़ी के लिए परिमित ग्रिड में ऐसा करना असंभव है तो आउटपुट 'असंभव'।
स्पष्टता (सभी चुनौतियों पर लागू)
- इनपुट स्टड, या फ़ाइल, या ग्रिड के स्ट्रिंग प्रतिनिधित्व पर एक फ़ंक्शन कॉल के माध्यम से भी हो सकता है। बस यह स्पष्ट करें कि विभिन्न इनपुट कैसे चलाएं।
- आउटपुट को stdout में जाना चाहिए।
\AऔरA/औरAAभी troughs आपकी अपेक्षा कर रहे हैं।- H ग्रिड द्वारा एक w हमेशा h की एक अच्छी तरह से स्वरूपित आयत होगी * h वर्ण जो नई वर्णनों की गिनती नहीं करते हैं। कोई अनुपस्थित अनुगामी स्थान और उसकी कोई घटना नहीं होगी
*। - ग्रिड आयाम 1 × 1 के रूप में छोटे और मनमाने ढंग से बड़े हो सकते हैं। (कारण के भीतर बड़े पैमाने पर, int.maxValue या एक स्वीकार्य सीमा है। वही T और K के लिए जाती है।)
- इसके
fठीक ऊपर एक धारा ऊपर बहती है। - नल कहीं भी हो सकते हैं, केवल शीर्ष पंक्ति पर नहीं।
Aहमेशा उस पर डाले गए पानी की मात्रा को आधे हिस्से में विभाजित करता है।
नोट: जैसी चीजें हैं /Aऔर //पूरी तरह से मान्य हैं। पानी है स्वतंत्र रूप से पात्रों के बीच प्रवाह (वहाँ पर्याप्त जगह यह आकर्षित करने के लिए नहीं है चुनौती 2 के लिए है)।
तो, सेटअप में
ff
/A
बायीं fधारा नीचे की ओर धंसती है, /और बायीं ओर से टकराती है। दायीं fधारा नीचे गिरती है, हिट करती है A, आधी दाईं जाती है और आधी और के बीच बाईं ओर जाती Aहै /।
जैसे
ff
**
*/A*
** *
** *
/Aयदि पानी गिरता है तो इनपुट को कैसे संभालना है A। सभी चुनौतियों के लिए, यह स्पष्ट करना अच्छा होगा कि क्या \Aगर्त है। तीसरी चुनौती के लिए, क्या 3 इकाइयों Aको विभाजित करने के लिए माना जाना चाहिए 1.5 / 1.5(इसलिए इनपुट वास्तव में एक एकल तर्कसंगत संख्या है) या यह है 2 / 1, इस मामले में किस पक्ष को प्राप्त होता है 2?
Aतो दोनों पक्षों को 1.5 मिलता है। यह कोडर पर निर्भर है कि यह सुनिश्चित करने के लिए कि फ्लोट सटीक कोई मुद्दा नहीं है।)
fs