ट्रैक
/
Go
Go
/
अभ्यास
/
ज़ेब्रा पहेली
ज़ेब्रा पहेली

ज़ेब्रा पहेली

कठिन

परिचय

ज़ेब्रा पहेली एक प्रसिद्ध तर्क पहेली है। इसमें पाँच घर हैं और हर घर का रंग अलग है। इन घरों में रहने वाले लोग भी अलग-अलग हैं: सबकी राष्ट्रीयता अलग है, सबके पालतू जानवर अलग हैं, सब अलग-अलग पेय पीते हैं और सबके शौक भी अलग-अलग हैं।

पहेली हल करने में आपकी मदद के लिए आपको 15 दावे दिए गए हैं, जो बताते हैं कि हल क्या है। लेकिन पहेली का हल तभी मिल पाएगा जब आप सभी दावों में दी गई जानकारी को आपस में मिलाएँगे।

Note

ज़ेब्रा पहेली एक कंस्ट्रेंट सैटिस्फैक्शन प्रॉब्लम (CSP) है। ऐसी समस्या में आपके पास संभावित वैल्यू का एक समूह होता है और कुछ कंस्ट्रेंट होते हैं, जो तय करते हैं कि कौन-सी वैल्यू मान्य हैं। एक और प्रसिद्ध CSP सुडोकू है।

निर्देश

आपको ज़ेब्रा पहेली हल करके इन दो सवालों के जवाब ढूँढने हैं:

  • इन निवासियों में से कौन पानी पीता है?
  • ज़ेब्रा किसके पास है?

पहेली

नीचे दिए गए सभी 15 दावे सत्य माने जाते हैं:

  1. पाँच घर हैं।
  2. अंग्रेज़ लाल घर में रहता है।
  3. स्पेनवासी के पास कुत्ता है।
  4. हरे घर में रहने वाला व्यक्ति कॉफी पीता है।
  5. यूक्रेनी चाय पीता है।
  6. हरा घर आइवरी घर के ठीक दाएँ है।
  7. घोंघा रखने वाले व्यक्ति को नाचने जाना पसंद है।
  8. पीले घर में रहने वाला व्यक्ति चित्रकार है।
  9. बीच के घर में रहने वाला व्यक्ति दूध पीता है।
  10. नॉर्वेजियन पहले घर में रहता है।
  11. जिसे पढ़ना पसंद है, वह लोमड़ी वाले व्यक्ति के बगल वाले घर में रहता है।
  12. चित्रकार का घर घोड़े वाले घर के बगल में है।
  13. फुटबॉल खेलने वाला व्यक्ति संतरे का रस पीता है।
  14. जापानी व्यक्ति शतरंज खेलता है।
  15. नॉर्वेजियन नीले घर के बगल में रहता है।

इसके अलावा, पाँचों घरों में से हर एक अलग रंग में रंगा गया है। उनमें रहने वाले लोगों की राष्ट्रीयता, पालतू जानवर, पेय और शौक भी अलग-अलग हैं।

Note

इस पहेली के 24 अरब (5!⁵ = 24,883,200,000) संभावित हल हैं, इसलिए जितने हल हो सके, उतने हटाने की कोशिश कीजिए।

कार्यान्वयन

बस एक फंक्शन बनाइए, SolvePuzzle, जो एक हल लौटाता है। इस हल में दो स्ट्रिंग होती हैं, जिनकी वैल्यू ज़ेब्रा पहेली के इन दो सवालों के जवाब होती हैं: "Who drinks water?" और "Who owns the Zebra?"। हर जवाब निवासी की इनमें से एक राष्ट्रीयता होगा: Englishman, Spaniard, Ukrainian, Norwegian, या Japanese.

स्पष्ट है कि अगर आप टेस्ट प्रोग्राम में झाँककर देख लें कि अपेक्षित हल क्या है, तो आप सिर्फ एक लाइन वाला फंक्शन लिख सकते हैं। लेकिन लक्ष्य यह है कि आप एक एल्गोरिदम बनाएँ, जो पहेली के दिए गए तथ्यों और बंधनों का इस्तेमाल करके सही दो जवाब निकालता है।


स्रोत

Wikipediaयह लिंक एक नई विंडो या टैब में खुलता है
GitHub के ज़रिए संपादित करें यह लिंक एक नई विंडो या टैब में खुलता है
Go Exercism

ज़ेब्रा पहेली शुरू करने के लिए तैयार हैं?

Exercism पर साइन अप कीजिए और Go को 34 कॉन्सेप्ट165 अभ्यास तथा असली इंसानों से मिलने वाली मेंटरिंग के साथ सीखिए और उसमें महारत हासिल कीजिए, वह भी बिल्कुल मुफ्त।

ज़ेब्रा पहेली को गहराई से जानिए!

24 अरब संभावित हलों में से ज़ेब्रा पहेली का हल ढूँढने के 8 अलग-अलग तरीके जानिए, जिनमें अमान्य क्रमपरिवर्तनों को जितनी जल्दी हो सके अनदेखा करना, AC-3 एल्गोरिदम, तर्क पर आधारित एक बहुत संक्षिप्त हल और यहाँ तक कि एक जेनेटिक एल्गोरिदम भी शामिल है!