मेरा कुत्ता मुझ पर भौंक रहा है, लेकिन मैं उसे टहलने के लिए ले जा रहा हूँ। मेरे पास विचार है! मैं कोड गोल्फ में लोगों को मेरे लिए यह करने के लिए मिल जाएगा!
आपकी चुनौती एक कुत्ते के चलने की नकल करना है। यहाँ कुत्ते चलने के नियम हैं:
- मानव (
H
)0,0
एक (कार्टेशियन) समन्वय विमान पर शुरू होगा , और बेतरतीब ढंग से हर सेकंड, बाएं, दाएं, या नीचे एक स्थान ऊपर जाएगा। - कुत्ता (
D
) एक ही स्थान पर शुरू होगा, और प्रत्येक सेकंड (यादृच्छिक रूप से, निश्चित रूप से) शून्य, एक, दो, या तीन स्थान ऊपर, बाएं, दाएं, या नीचे जाएगा। कुत्ता कम अनुमानित है और कभी-कभी तेजी से चलेगा या पूरी तरह से बंद हो जाएगा। - कुत्ते को मानव (यूक्लिडियन दूरी) में दूर इकाइयों की एक निश्चित मात्रा से अधिक कभी नहीं मिलेगा, जो पट्टा (
L
) की लंबाई है । उदाहरण के लिए, यदिL
है6
, तो एक वैध स्थिति होगीH(0,0) D(4,4)
(चूंकि दूरी लगभग 5.65 इकाई है), लेकिन नहींH(0,0) D(5,4)
(लगभग 6.4 इकाई)।- यदि, कुत्ता चलता है, तो वह पट्टा दूरी की आवश्यकता का उल्लंघन करेगा, उसे अपनी निर्धारित दिशा में सबसे दूर जाना चाहिए जो दूरी की आवश्यकता का उल्लंघन नहीं करता है। उदाहरण के लिए, यदि स्थिति है
H(0,0) D(3,4)
और कुत्ते को बेतरतीब ढंग से 3 रिक्त स्थान को दाईं ओर ले जाने का निर्णय लिया गया है, तो यह जाएगाD(4,4)
, क्योंकि यह सबसे दूर जाने के बाद 6 से अधिक इकाइयों को प्राप्त किए बिना जा सकता है। (ध्यान दें कि इसके परिणामस्वरूप 0 स्थान हो सकता है, अर्थात कोई भी आंदोलन नहीं होगा!)
- यदि, कुत्ता चलता है, तो वह पट्टा दूरी की आवश्यकता का उल्लंघन करेगा, उसे अपनी निर्धारित दिशा में सबसे दूर जाना चाहिए जो दूरी की आवश्यकता का उल्लंघन नहीं करता है। उदाहरण के लिए, यदि स्थिति है
- विविध नियम: मानव सबसे पहले चलता है। मानव को अपनी चाल पर पट्टा लंबाई से अधिक नहीं होना चाहिए। यदि ऐसा होता है, तो उसे दूसरी दिशा चुननी चाहिए। "यादृच्छिक" का अर्थ है "एक समान वितरण के साथ और बिना किसी पैटर्न के।"
इस प्रारूप में इनपुट दिया जाएगा (एसटीडीआईएन, फ़ंक्शन पैरामीटर, फ़ाइल, आदि):
"<amount of seconds the walk will last> <leash length>"
उदाहरण के लिए:
300 6 // a 5 minute walk with a 6 yard leash
आपको इस प्रारूप में आउटपुट देना होगा (STDOUT, फ़ंक्शन रिटर्न वैल्यू, फ़ाइल, आदि):
H(0,0) D(0,0)
H(0,1) D(2,0)
H(1,1) D(2,1)
H(1,0) D(2,-1)
...
(लाइन आउटपुट की मात्रा होगी seconds + 1
, क्योंकि H(0,0) D(0,0)
लाइन की गिनती नहीं है।)
यह कोड-गोल्फ है , इसलिए बाइट्स में सबसे छोटा कोड जीत जाएगा!