ट्रैक
/
Prolog
Prolog
/
अभ्यास
/
बाइनरी पहेली
बाइनरी पहेली

बाइनरी पहेली

मध्यम

परिचय

आपकी दादी को हाल ही में बाइनरी पहेलियाँ हल करने में गहरी रुचि लगने लगी है। हालाँकि वह इसमें बेहतर होती जा रही हैं, फिर भी वह अक्सर अटक जाती हैं। आप एक मददगार पोता या पोती हैं ही, इसलिए आप एक छोटा एप्लिकेशन बनाने का फैसला करते हैं जो कोई भी बाइनरी पहेली हल कर सके। इससे आप अपनी दादी को उनकी अगली चाल के लिए संकेत दे सकेंगे।

निर्देश

आपको एक बाइनरी पज़ल हल करना है। हर बाइनरी पज़ल का ठीक एक ही हल होता है, और उसे इन नियमों को लागू करके निकाला जा सकता है:

  1. हर खाने में या तो शून्य होना चाहिए या एक।
  2. एक ही अंक के दो से ज़्यादा खाने पास-पास नहीं हो सकते। इसलिए, अगर दो पास-पास वाले खानों में एक ही अंक है, तो उन अंकों के बगल वाले खानों में दूसरा अंक होना चाहिए।
  3. हर पंक्ति और हर स्तंभ में शून्य और एक की संख्या बराबर होनी चाहिए।
  4. हर पंक्ति और हर स्तंभ अनोखे होते हैं।

आपको हल करने के लिए एक अधूरा पज़ल मिलेगा, जिसमें शून्य और एक की पंक्तियाँ होंगी और जिन वैल्यू का पता नहीं है उनके लिए प्लेसहोल्डर (_) होंगे। आपको बाइनरी पज़ल के नियम बनाने हैं, ताकि टेस्ट प्लेसहोल्डर की वैल्यू खुद निकाल सकें (यह काम आपको खुद नहीं करना है)। आपके इम्प्लीमेंटेशन में Prolog की फिनाइट डोमेन पर कंस्ट्रेंट लॉजिक प्रोग्रामिंग (CLP(FD)) का उपयोग करना ज़रूरी है, जो इस तरह के कामों के लिए बिल्कुल सही है।

Note

शुरू करने में आपकी मदद के लिए, स्टब फाइल में पहले से ही clpfd लाइब्रेरी शामिल है, इस तरह:

:- use_module(library(clpfd)).
GitHub के ज़रिए संपादित करें यह लिंक एक नई विंडो या टैब में खुलता है
Prolog Exercism

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

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