मुझे केवल मास्टरमाइंड के लिए कोड-गोल्फ चुनौतियां मिल सकती हैं, इसलिए यहां एक कोड-चुनौती संस्करण है जिसे मैं खुद लेना पसंद करूंगा।
सामान्य मास्टरमाइंड गेम, MM (4,6) के लिए एक इष्टतम रणनीति 1993 में कोयामा और लाई द्वारा पाई गई, जिसका औसत # अनुमान = 5625/1296 ~ 4.34 था। MM (5,8) अभी भी अनसुलझा है, लेकिन अनुमान लगाया जाता है कि यह औसत # 5.5 है।
आपका कार्य एक MM (5,8) रणनीति बनाना है, जो 5 छेद और 8 रंगों के लिए है, जो सभी pow(8,5) = 32768
संभावित विशिष्ट समाधानों को कवर करता है। जाहिर है, यह एक इष्टतम एक होने की जरूरत नहीं है। आपके पास दो विकल्प हैं:
- एक नियतात्मक कार्यक्रम पोस्ट करें जो रणनीति उत्पन्न करता है। कार्यक्रम को विंडोज 7, मैक ओएस एक्स या लिनक्स पर बिना किसी अतिरिक्त गैर-मुक्त सॉफ़्टवेयर के लिए संकलन योग्य / चलाने योग्य होना चाहिए।
- अपनी रणनीति (अपने StackExchange नाम के साथ) को इंटरनेट पर कहीं प्रकाशित करें और यहां URL पोस्ट करें।
दोनों मामलों में, उत्तर के शीर्षलेख में स्कोर (नीचे देखें) बताएं।
निम्नलिखित व्याकरण के अनुसार रणनीति को इनकोड किया जाना चाहिए:
strategy : guessing-strategy | known-solution-strategy
guessing-strategy : '{' guess ':' branches '}'
known-solution-strategy : guess
guess : color color color color color
color : 'A'..'H'
branches : '{' branch (',' branch)* '}'
branch : reply ':' strategy
reply : number-of-blacks number-of-whites
number-of-blacks : number-of-key-pegs
number-of-whites : number-of-key-pegs
number-of-key-pegs : '0'..'5'
काले / सफेद कुंजी खूंटे की संख्या तय करने के लिए उपयोग किए जाने वाले एल्गोरिदम का वर्णन http://en.wikipedia.org/wiki/Mastermind_(board_game) में किया गया है
ध्यान दें कि उत्तर "50" (यानी सही अनुमान) निहित है और व्याकरण का हिस्सा नहीं है।
स्कोरिंग: एन = 32768 पथ / समाधान में से प्रत्येक के लिए अनुमानों की संख्या का योग। सबसे कम एन जीत के साथ रणनीति। पहला टाई-ब्रेक: अनुमानों की सबसे कम अधिकतम संख्या। दूसरा टाई-ब्रेक: पहला पोस्ट किया गया उत्तर। प्रतियोगिता 1 अगस्त 2014 को 0:00 GMT समाप्त होती है ।
स्कोर = 21 के साथ MM (2,3) के लिए एक रणनीति का एक उदाहरण:
{AB:{10:{AC:{10:AA,01:CB,00:BB}},02:BA,01:{BC:{01:CA}},00:CC}}
इस रणनीति का उपयोग करते हुए, 9 संभावित गेम इस प्रकार होंगे:
- एबी २०
- एबी 10, एसी 20
- एबी 10, एसी 10, एए 20
- एबी 10, एसी 01, सीबी 20
- एबी 10, एसी 00, बीबी 20
- एबी 02, बीए 20
- एबी 01, बीसी 20
- एबी 01, बीसी 01, सीए 20
- एबी 00, सीसी 20
मैं जल्द ही आपकी सुविधा के लिए जावा-आधारित MM (5,8) रणनीति सत्यापनकर्ता पोस्ट करूंगा।
{AB:{10|01:BB}}
? मेरे पास एक उत्तर है, लेकिन यह बहुत अच्छा है और व्याकरण की वृक्ष-संरचना के कारण यह बिल्कुल भी अच्छा नहीं है (4 छेद, 3 रंग, एक 147MB रणनीति उत्पन्न करता है, जिसे मैं भागों के संयोजन से महत्वपूर्ण रूप से काट सकता हूं । पेड़)।