एक दिलचस्प पहेली मुझे आज सुबह लिफ्ट के बटनों को देखकर आई।
आपको सभी ब्रेल पैटर्न की एक सूची तैयार करनी होगी जो 2x3 ग्रिड में फिट होती है। एक सपाट क्षेत्र #
को निरूपित करने के लिए एक टक्कर और एक हाइफ़न -
को निरूपित करने के लिए हैश का उपयोग करें ।
अपेक्षित आउटपुट नमूना:
#-
--
--
##
--
--
#-
#-
--
(and so on...)
नियम:
- आपके प्रोग्राम को प्रत्येक पैटर्न को कम से कम एक वर्ण या पंक्ति द्वारा अलग करना होगा।
- पैटर्न किसी भी क्रम में उत्पन्न हो सकते हैं।
- सभी पैटर्न, चाहे ब्रेल वर्णमाला वास्तव में उपयोग करता है, का उत्पादन किया जाना चाहिए। पूरी तरह से खाली पैटर्न वैकल्पिक है।
- केवल अद्वितीय बंप पैटर्न उत्पन्न किया जाना चाहिए। निम्न पैटर्न को समतुल्य माना जाता है क्योंकि धक्कों एक समान व्यवस्था में हैं। इन मामलों में, पैटर्न का उपयोग करें जो शीर्ष-बाएं कोने के सबसे करीब है (जैसे कि इस उदाहरण में पहला विकल्प।)
#- -# -- --
#- -# #- -#
-- -- #- -#
बोनस अंक यदि आप इसे y आकार के ग्रिड द्वारा किसी भी x के लिए काम कर सकते हैं । ( EDIT: उचित सीमा के भीतर। 4x4 तक अवधारणा के प्रमाण के लिए पर्याप्त है।)
विकी लेख को पढ़ने पर, ऐसा प्रतीत होता है कि इस पहेली के नियमों को पूरा करने वाले 45 पैटर्न (रिक्त सहित) हैं।
x
एक्सy
ग्रिड आप पहली बार उत्पन्न2^(xy)
उन जो के खिलाफ 0 मुखौटा बाहर नंबर और फिल्टर2^x - 1
या(2^(xy+1) - 1)/(2^y - 1)
।