यह एक सामान्य पहेली है जिसे आप में से कई लोगों ने मैन्युअल रूप से हल किया है। अब यह एक ही हल करने के लिए एक एल्गोरिथ्म लिखने का समय है।
एक-दूसरे की दिशा का सामना करने वाले दो अलग-अलग पक्षों में समान संख्या वाले मैच स्टिक होते हैं। उनके बीच एक ही खाली जगह है। निम्नलिखित आकृति की तरह कुछ कहें (यदि मैच स्टिक की कुल संख्या 4 है)।
प्रत्येक छड़ी या तो एक कदम आगे की दिशा में स्लाइड कर सकती है (यदि तत्काल सामने का स्थान खाली है), या इसे उनके सामने एक छड़ी पर कूद कर दिया जा सकता है, और खाली स्थान (यदि वह स्थान खाली है) में भूमि। रिवर्स दिशा में कदम संभव नहीं है (यहां तक कि स्थान खाली है)। किसी रिवर्स जंप की भी अनुमति नहीं है। एक चरण में केवल एक चाल की अनुमति है।
अब, आपको आवश्यक न्यूनतम चरणों को खोजने के लिए एक एल्गोरिथ्म लिखना होगा, जिसके उपयोग से सभी बाएं हाथ की तरफ की छड़ें दाएं हाथ की तरफ से और सभी दाएं हाथ के मैच की छड़ें बाएं हाथ की तरफ से उतरेंगी।
पूर्व के लिए: यदि कुल 2 मैच स्टिक हैं (प्रत्येक पक्ष में 1) तो चरण होंगे:
नोट: उपरोक्त आकृति में बाईं ओर की छड़ी को पहले स्थानांतरित किया गया था। एक और समाधान मौजूद है जब दाहिनी ओर की छड़ी पहले चलती है। लेकिन इस समस्या के लिए, आपको केवल एक समाधान देना होगा और यह भी मान लेना होगा कि बाईं ओर की छड़ी पहले चलती है।
निम्नलिखित आंकड़ा 4 मैच स्टिक (प्रत्येक पक्ष में 2) के साथ चाल का वर्णन करता है:
नोट: उपरोक्त आकृति में बाईं ओर की छड़ी को पहले स्थानांतरित किया गया था। एक और समाधान मौजूद है जब दाहिनी ओर की छड़ी पहले चलती है। लेकिन इस समस्या के लिए, आपको केवल एक समाधान देना होगा और यह भी मान लेना होगा कि बाईं ओर की छड़ी पहले चलती है।
[मान लें: इनपुट किसी भी संख्या में ०२ से १४ के बीच हो सकता है (अर्थात प्रत्येक पक्ष में १ से icks माचिस की तीली)। इस सीमा के बाहर इनपुट के लिए, आपको कोई सत्यापन करने की आवश्यकता नहीं है, न ही कोई त्रुटि संदेश देने की आवश्यकता है। नोट: आउटपुट में, प्रत्येक चरण एक 'से अलग हो जाता है।' (पाइप) चरित्र। COBOL प्रोग्रामर को हमेशा PIC 9 (2) को इनपुट साइज के रूप में ग्रहण करना चाहिए और आउटपुट को अधिकतम लंबाई 450 वर्णों पर तय करने की भी आवश्यकता हो सकती है।
नमूना इनपुट:
02
नमूना आउटपुट:
01To02|03To01|02To03|
नमूना इनपुट:
04
नमूना आउटपुट:
02To03|04To02|05To04|03To05|01To03|02To01|04To02|03To04|
नमूना इनपुट:
06
नमूना आउटपुट:
03To04|05To03|06To05|04To06|02To04|01To02|03To01|05To03|07To05|06To07|04To06|02To04|03To02|05To03|04To05|