एक प्रोग्राम या फ़ंक्शन लिखें जो एक धनात्मक पूर्णांक N में लेता है (stdin / कमांड लाइन / फ़ंक्शन arg के माध्यम से) और प्रिंट करता है या दो आयामी यादृच्छिक चलने का एक स्ट्रिंग प्रतिनिधित्व करता है जो N चरण लंबा है, जो स्लैश से निकाला गया है: /
\
(प्लस स्पेस और) रिक्ति के लिए newlines)।
एक 2 डी यादृच्छिक चलना एक अनंत पूर्णांक जाली के मूल में शुरू होता है । फिर एन बार बार, एक कार्डिनल दिशा (ऊपर, नीचे, बाएं, दाएं) को यादृच्छिक रूप से समान रूप से चुना जाता है और वॉकर उस दिशा में एक इकाई को स्थानांतरित करता है। परिणामस्वरूप लिया गया पथ यादृच्छिक चलना है।
यहां एन = 6. के लिए एक यादृच्छिक चलना है। ध्यान दें कि जब यह (-1, 3) तक पहुंचता है, तो यह अपने आप वापस आ जाता है।
स्लैश के साथ इसे आकर्षित करने के लिए, हमें अनिवार्य रूप से पूरी चीज़ को 45 ° दक्षिणावर्त घुमाना होगा। कुल्हाड़ी संस्करण में कुल्हाड़ियों और स्टार्ट एंड एंड पॉइंट नहीं खींचे जाते हैं।
/
\
\
/\
इस तरह एक और अधिक जटिल चलना (एन = 20, हालांकि यह बताने का कोई तरीका नहीं है):
यह बन जाएगा:
/
/\/ /\
\/\/
/\/
\/
आपके प्रोग्राम को इस प्रकार के स्लैश संस्करणों को रैंडम वॉक बनाने की आवश्यकता है। आपको हर बार नई दिशा का चयन करना चाहिए , जिससे चलना निश्चित हो, इसलिए निश्चित N के लिए कार्यक्रम का प्रत्येक भाग लगभग निश्चित रूप से एक अलग चलना होगा। (छद्मता ठीक है।)
सबसे निचली और उच्चतम स्लैश (एक वैकल्पिक अनुगामी न्यूलाइन को छोड़कर) के ऊपर या नीचे कोई खाली लाइनें कभी नहीं होनी चाहिए, और सबसे बाएं और दाएं स्लैश से पहले या बाद में रिक्त स्थान के खाली कॉलम कभी नहीं होने चाहिए।
तो एन = 1 के लिए, आउटपुट हमेशा /
या होता है \
, लेकिन कभी कुछ ऐसा नहीं होता है:
/
अनुगामी रिक्त स्थान को तब तक अनुमति दी जाती है जब तक वे सबसे दाहिने स्लैश के कॉलम से आगे नहीं जाते हैं।
सबसे कम बाइट्स के साथ सबमिशन जीत जाता है। यहाँ एक आसान बाइट काउंटर है।