वर्णनात्मक कीवर्ड (खोज के लिए): दो मैट्रिक्स समतुल्य बनाएं, ओवरलैप, सरणी, खोजें
चुनौती
सांता का अतीत में अपनी तिजोरी से चोरी करने वाले कल्पित बौने का इतिहास रहा है, इसलिए इस साल उन्होंने एक ऐसा ताला डिजाइन किया, जिसे तोड़ना बहुत कठिन है, और ऐसा लगता है कि इस साल कल्पित बौने बाहर रहते हैं। दुर्भाग्य से, उसने संयोजन खो दिया है और वह यह पता नहीं लगा सकता है कि इसे कैसे खोलें! सौभाग्य से, उन्होंने संयोजन खोजने के लिए एक कार्यक्रम लिखने के लिए आपको काम पर रखा है। यह कम से कम एक होने की जरूरत नहीं है, लेकिन वह इसे जितनी जल्दी हो सके खोजने की जरूरत है!
उनका बहुत सख्त कार्यक्रम है और वह बहुत लंबे समय तक इंतजार नहीं कर सकते। आपका स्कोर स्कोरिंग इनपुट के लिए आपके प्रोग्राम के आउटपुट के चरणों की संख्या से गुणा आपके कार्यक्रम का कुल रन-टाइम होगा। सबसे कम स्कोर जीतता है।
विशेष विवरण
लॉक 1s और 0s का एक वर्ग मैट्रिक्स है। यह 1s और 0s की यादृच्छिक व्यवस्था के लिए सेट है और इसे एक निर्दिष्ट कोड पर सेट करना होगा। सौभाग्य से, सांता को आवश्यक कोड याद है।
वहाँ कुछ कदम वह प्रदर्शन कर सकते हैं। प्रत्येक चरण किसी भी सन्निहित उप-मैट्रिक्स पर किया जा सकता है (अर्थात, आपको एक उप-मैट्रिक्स का चयन करना होगा जो पूरी तरह से एक ऊपरी-बाएँ और नीचे-दाएं कोने से घिरा हुआ है) (यह एक गैर-वर्ग उप-मैट्रिक्स हो सकता है):
- दाएं घुमाएं 90 डिग्री *
- बाईं ओर 90 डिग्री घुमाएँ *
- 180 डिग्री घुमाएँ
- प्रत्येक पंक्ति
n
तत्वों को दाएं या बाएं चक्रित करें (लपेटें) - प्रत्येक स्तंभ
m
तत्वों को ऊपर या नीचे (लपेटें) - क्षैतिज फ्लिप
- ऊर्ध्वाधर रूप से पलटें
- मुख्य विकर्ण पर पलटें *
- मुख्य एंटी-विकर्ण पर पलटें *
* केवल अगर उप-मैट्रिक्स चौकोर है
बेशक, वह पूरे मैट्रिक्स पर इन चरणों का प्रदर्शन भी कर सकता है। चूँकि 1s और 0s को केवल मैट्रिक्स पर स्वैप किया जा सकता है, लेकिन एक वर्ग का मान सीधे बदला नहीं जा सकता है, 1s और 0s की संख्या प्रारंभ और अंत कॉन्फ़िगरेशन के लिए समान है।
स्वरूपण विनिर्देशों + नियम
आपको दो वर्ग मैट्रिसेस (शुरुआती स्थिति और समाप्ति की स्थिति) के रूप में इनपुट दिया जाएगा जो आप चाहते हैं किसी भी उचित प्रारूप में। आउटपुट किसी भी पठनीय प्रारूप में इन चरणों का एक क्रम होना चाहिए। चूंकि यह कोड-गोल्फ नहीं है, कृपया इसे आसानी से सत्यापित करने योग्य प्रारूप बनाएं, लेकिन यह एक सख्त आवश्यकता नहीं है। यदि आप चाहें तो मैट्रिसेस की साइड-लेंथ चुन सकते हैं।
आपका कार्यक्रम मेरे कंप्यूटर पर चलाया जाएगा (लिनक्स मिंट, अनुरोध पर उपलब्ध सटीक संस्करण विवरण यदि कोई भी परवाह करता है: पी) और मैं इसे कमांड लाइन पर "एन्टर" दबाने के बीच के समय की मात्रा के आधार पर और समय पर करूँगा कमांड से बाहर निकलता है।
परीक्षण के मामलों
1 0 0 1 0 0 0 0
0 1 1 0 -> 0 0 0 0
0 1 1 0 -> 1 1 1 1
1 0 0 1 1 1 1 1
- पूरी मैट्रिक्स लो। प्रत्येक कॉलम को 1 तक साइकिल चलाएं।
- एक उप-मैट्रिक्स के रूप में मध्य दो कॉलम लें। प्रत्येक कॉलम को नीचे 2 चक्र करें।
1 0 1 0 1 0 1 0 1 0
0 1 0 1 0 1 0 1 0 1
1 0 1 0 1 -> 0 1 1 1 0
0 1 0 1 0 1 0 1 0 1
1 0 1 0 1 0 1 0 1 0
- पूरी मैट्रिक्स लो। प्रत्येक कॉलम को नीचे 1 चक्र करें।
- बीच का कॉलम लें। इसे 2 चक्र करें।
- शीर्ष 2 पंक्तियों को लें। इसे लंबवत पलटें।
- शीर्ष पंक्ति के सबसे दाहिने 2 तत्वों को लें। उन्हें स्वैप करें (दाएं / बाएं 1 घुमाएं, क्षैतिज रूप से फ्लिप करें)।
- शीर्ष पंक्ति के सबसे बाएं 2 तत्वों को लें। उन्हें स्वैप करें।
अधिक कुशल तरीके हो सकते हैं, लेकिन इससे कोई फर्क नहीं पड़ता। अगर आपको एक मिल जाए तो बेझिझक उन्हें टिप्पणियों में इंगित करें :)
जजमेंट टेस्ट केस
इस परीक्षण मामले का उपयोग आपके सबमिशन को दर्शाने के लिए किया जाएगा। अगर मुझे लगता है कि परीक्षण के मामले के लिए एक जवाब बहुत अधिक विशेषज्ञता वाला है, तो मुझे एक यादृच्छिक इनपुट को दोहराने और नए मामले के साथ सभी उत्तरों को फिर से बताने का अधिकार है। परीक्षण का मामला यहां पाया जा सकता है जहां शीर्ष शुरू है और नीचे वांछित विन्यास है।
अगर मुझे लगता है कि उत्तर बहुत अधिक विशेषज्ञता वाले हैं, तो अगले परीक्षण मामले का एमडी 5 है 3c1007ebd4ea7f0a2a1f0254af204eed
। (यह अभी अपने आप को धोखा देने के आरोपों से मुक्त करने के लिए यहाँ लिखा गया है: P)
स्टैंडर्ड लोफॉल्स लागू होते हैं। कोई उत्तर स्वीकार नहीं किया जाएगा। हैप्पी कोडिंग!
नोट: मैंने इस चुनौती श्रंखला के लिए Advent of Code से प्रेरणा ली । मेरा इस साइट से कोई जुड़ाव नहीं है
आप यहां पहली चुनौती के 'लिंक्ड' सेक्शन को देखकर श्रृंखला की सभी चुनौतियों की सूची देख सकते हैं ।
0
और 64 है1
, और कुल256 choose 64 ≈ 1.9 × 10⁶¹
पहुंच योग्य मैट्रीस हैं। (जो एक मेगामिनक्स की तुलना में है, और एक रूबिक्स रिवेंज से बड़ा है, हालांकि प्रोफेसर के घन से बहुत कम है)