2012-03-01 15 views
8

मैं उबंटू में स्लंट पर आया था। मैं परीक्षण और त्रुटि आदिपरीक्षण और त्रुटि के बिना तर्कसंगत रूप से इस पहेली को हल करने के लिए कैसे करें

द्वारा तार्किक और नहीं पहेली को हल करना चाहते हैं नियम सरल हैं:

  1. हम दाएं या बाएं तिरछा के साथ सभी बक्से को भरने के लिए है।
  2. किसी संख्या को छूने वाले स्लंट की संख्या उस संख्या के बराबर होनी चाहिए।
  3. बोर्ड में कोई लूप की अनुमति नहीं है। यानी slants loops बनाने नहीं होना चाहिए।

पहेली:

Question

ऑटो हल जवाब:

enter image description here

मुझे कहां से शुरू करते हैं?

+0

सबसे निश्चित रूप से, आपको कुछ परीक्षण और त्रुटि की आवश्यकता होगी। आप कुछ विकल्पों को जल्दी से रद्द कर सकते हैं, लेकिन मुझे नहीं लगता कि यह बिना किसी बैकट्रैकिंग के किया जा सकता है। –

+1

@EAGER_STUDENT: मैं इसे लेता हूं [यह गेम] (http://manpages.ubuntu.com/manpages/lucid/man6/slant.6.html)? क्या आप स्रोत कोड को देखने के लिए नहीं देख सकते हैं कि वे इसे कैसे हल करते हैं? – James

+0

@AakashM हाँ मैं तर्कसंगत रूप से सरल ग्रिड को हल कर सकता हूं। सरल ग्रिड में कोने पर 0 या 4 या 1 की संख्या होगी। एक उपकरण के रूप में मैं हल करूँगा। जब चौड़ाई या ऊंचाई बढ़ जाती है तो समस्या यह है कि ये 3 चीजें कठिन पहेली में मौजूद नहीं हैं। –

उत्तर

2

बाएं और दाएं स्लंट के बजाय मैं स्लैश (/) और बैकस्लैश (\) का उपयोग करूंगा।

चलो एक वर्ग कोनों (x1) (11) के साथ लेते हैं, जहां x कुछ भी है लेकिन 1. शीर्ष बाएं कोने में ऐसा एक है। मान लें कि उस वर्ग पर पतला स्लैश है, जो दो 1 को जोड़ता है। वे 1 "उपयोग किए गए" हैं और उन्हें छूने वाले सभी वर्गों में ऐसी रेखाएं होनी चाहिए जो संख्याओं को स्पर्श न करें। लेकिन इससे असंभव स्थिति होती है क्योंकि हमारे पास हमारे वर्ग के नीचे और नीचे दोनों स्लैश होंगे जिसका अर्थ है कि शेष 1 दो स्लंट को छू रहा है। निष्कर्ष: यदि आपके पास तीन 1 के साथ एक वर्ग है तो उस वर्ग में रेखा को उस कोने को स्पर्श करना चाहिए जो 1 नहीं है। यह नियम किनारों और कोनों में लागू नहीं हो सकता है, लेकिन यदि आपके पास कोने में 1 है तो आपको उस कोने को छूने वाली रेखा खींचनी होगी।

संख्या 1 और 3 सममित हैं और समान तर्क का उपयोग करते हुए हमें एक और नियम मिलता है: यदि आपके पास तीन 3 के साथ एक वर्ग है तो उस वर्ग में रेखा को उन तीनों 3 में से दो स्पर्श करना होगा।

अधिक सामान्य नियम हैं, लेकिन वे कोनों में लागू नहीं होते हैं। प्रश्न में वर्ग के चारों ओर वर्ग होना चाहिए। चलिए एक वर्ग दो का विरोध करते हैं (x1) (1y), जहां x और y कुछ भी हैं, जिसमें कोई संख्या नहीं है। नीचे बाएं कोने से ऐसे दो वर्ग दूर हैं।मान लें कि उस वर्ग पर पतला स्लैश है, जो दो 1 को जोड़ता है। वे 1 "उपयोग किए गए" हैं और उन्हें छूने वाले सभी वर्गों में ऐसी रेखाएं होनी चाहिए जो संख्याओं को स्पर्श न करें। लेकिन यह 1 के आसपास लूप की ओर जाता है। निष्कर्ष: यदि आपके पास दो विरोधी 1 के साथ एक वर्ग है तो उस वर्ग में रेखा को उन दो 1 के को स्पर्श नहीं करना चाहिए। यह नियम बोर्ड किनारों पर लागू नहीं हो सकता है।

संख्या 1 और 3 सममित हैं, लेकिन पिछले नियम "नो लूप" नियम नियोजित करते हैं, और कोई सममित नहीं है "पार्श्व रेखाओं की कोई लूप नहीं" नियम है, और इसलिए दो विरोधी 3 होने का कोई नियम नहीं है।

अब आप जानते हैं कि कौन सी रेखा 1 को छूती है आप निष्कर्ष निकाल सकते हैं कि कोई अन्य रेखा इसे छू सकती है। नियमों को भरने के बाद हम इस तर्क को सामान्यीकृत कर सकते हैं: यदि कोई संख्या x एक्स लाइनों को छू रही है तो अन्य सभी पड़ोसी वर्गों में ऐसी रेखाएं हैं जो को स्पर्श नहीं करती हैं। और सममित रूप से: यदि कोई संख्या x उन पंक्तियों के साथ (4-x) वर्गों का कोने है जो संख्या को स्पर्श नहीं करते हैं तो अन्य सभी पड़ोसी वर्गों में ऐसी पंक्तियां होनी चाहिए जो संख्या को स्पर्श करें।

"" गोकिगेन नैनम "के लिए चारों ओर गुगल करना" मुझे और नियम मिले। एक लगभग दो निकट (1) है, लेकिन Mweerden पहले से ही इसे कवर किया है।

ये नियम बोर्ड को हल करने के लिए पर्याप्त नहीं हैं। शायद अन्य नियम भी हैं। लेकिन अंततः एल्गोरिदम को अनुमान लगाना पड़ सकता है।

+0

मुझे विश्वास नहीं है कि किसी भी अच्छी पहेली में एल्गोरिदम को अनुमान लगाना होगा (साइमन टाथम के पोर्टेबल पहेली संग्रह से संस्करण को उचित रूप से अनुभव करने के अनुभव के आधार पर - http://www.chiark.greenend.org.uk /~sgtatham/puzzles/java/slant.html) लेकिन अन्यथा मैं सहमत हूं। यह पैटर्न आपको ढूंढने वाले पैटर्न ढूंढने के बारे में है और फिर उसमें जोड़कर और फिर अधिक पैटर्न ढूंढ रहा है। यदि आप अनुमान लगा रहे हैं तो आप अभी तक पर्याप्त पैटर्न नहीं हैं। :) – Chris

+0

पैटर्न की संख्या इतनी बड़ी हो सकती है कि गीगाबाइट बड़े डेटाबेस के मुकाबले अनुमान लगाना बेहतर होगा। – Dialecticus

+0

आप सही हैं कि कई बार विफलता के लिए पथ का परीक्षण करना सबसे अच्छा हो सकता है लेकिन मेरा अंतर्ज्ञान/अनुभव बताता है कि यह मामला नहीं है। जब तक मैंने आखिरी बार खेला था, तब तक यह बहुत लंबा रहा है, इसलिए मुझे अपने सिर में मौजूद सभी नियमों को याद रखने और यहां डालने के लिए याद नहीं किया जा सकता है। अगर मैं काम पर नहीं था तो मैं खुद को याद दिलाने के लिए खेलना शुरू कर दूंगा। ;-) – Chris

2

"तर्कसंगत" एक बहुत व्यापक शब्द है। टिप्पणियों में उल्लिखित ऑर्बलिंग के रूप में, बैकट्रैकिंग को तार्किक माना जा सकता है। कोई भी तार्किक सूत्र में अनुवाद करके इसे हल करने के अर्थ के रूप में "तार्किक रूप से" समझ सकता है। टिप्पणियों से मैं इकट्ठा करता हूं कि आप एक सामान्य सुडोकू सॉल्वर के समान, एक सॉल्वर को लागू करने की कोशिश कर रहे हैं।

सुडोकस के लिए एक के समान एक सॉल्वर को लागू करने का एक आसान तरीका, कुछ पैटर्न ढूंढना है। आपके द्वारा संदर्भित कार्यक्रम द्वारा उत्पन्न पहेली के लिए, मैं उचित विश्वास के साथ कह सकता हूं कि यह अनुमान लगाने और बैकट्रैकिंग के बिना उन्हें हल करने के लिए पर्याप्त होना चाहिए।

स्पष्ट पैटर्न के कुछ उदाहरण <11> और >33< हैं। विशेष रूप से 2 में कुछ अच्छी "संक्रमणीय" गुण हैं। उदाहरण के लिए: <12...23 -> <12...23< (2 के साथ ... 2 2 की मनमानी राशि)। विभिन्न उदाहरणों पर अपने सॉल्वर को आजमाएं और जब यह अटक जाए तो मुझे यकीन है कि आपको एक ऐसा उदाहरण मिला है जो आपको एक और पैटर्न सिखा सकता है।

संबंधित मुद्दे