2009-11-28 5 views
6

कहें कि मेरे पास एक और मैरोस का मैट्रिक्स है, और मैं इस मैट्रिक्स के लिए 'पहचानकर्ता' चाहता हूं जो इस बात पर ध्यान दिए बिना कि मैट्रिक्स 90, 180, या 270 डिग्री, यानी 4-टू- 1 मैपिंग आदर्श रूप में, यह पहचानकर्ता मैट्रिक्स के आकार 1/4 होना चाहिए। क्या यह मैपिंग करने वाला एक फ़ंक्शन लिखना संभव है?क्या बूलियन मैट्रिक्स का घूर्णनशील रूप से परिवर्तनीय पहचानकर्ता होना संभव है?

पृष्ठभूमि: मैं यूवीए समस्या सेट पर this problem पर देख रहा था। मुझे समस्या को हल करने के लिए बिल्कुल इस तरह की एक फ़ंक्शन की आवश्यकता नहीं है, लेकिन ऐसा लगता है कि यह अस्तित्व में होगा, और इसका उपयोग करने से अधिक सुरुचिपूर्ण समाधान होगा।

+0

+1 पहले प्रश्न के लिए आज मुझे 3 बार – cdonner

उत्तर

7

हां। आप अपना मूल मैट्रिक्स ए ले सकते हैं, और इसे सभी संभावित कॉन्फ़िगरेशन ए ', ए' 'और ए' 'में घुमा सकते हैं। फिर आप अपने चयन के कुछ सॉर्टिंग का उपयोग करके इन्हें क्रमबद्ध कर सकते हैं (केवल सुसंगत रहें), पहले चुनें, और हैश कि आपके चयन के किसी भी हैश फ़ंक्शन का उपयोग करके (फिर, वास्तविक हैश फ़ंक्शन कोई फर्क नहीं पड़ता, केवल सुसंगत रहें)।

जाहिर है कि यह वास्तव में पूर्ण रोटेशन और सॉर्टिंग नहीं कर रहा है - आप तुलनात्मक रूप से तुलना कर सकते हैं, जैसे ही आप जानते हैं कि कौन सा रोटेशन पहले होता है - लेकिन सिद्धांत समान है।

+3

पढ़ना पड़ा था या सॉर्टिंग परेशान नहीं करना था, लेकिन सभी 4 हैश और एक्सओआर उन्हें एक साथ उत्पादन करना था। अच्छे विचार के लिए +1! –

+0

आपका विचार भी काम करेगा और यह आसान है, लेकिन शायद धीमा हो जाएगा क्योंकि इसे और अनुकूलित करना मुश्किल हो सकता है। एक अलग दृष्टिकोण का सुझाव देने के लिए +1 - कभी-कभी सादगी प्रदर्शन से अधिक महत्वपूर्ण है। –

+0

@ करल: क्या आप स्पष्ट कर सकते हैं कि 4 हैश एक्सओआरजी हमेशा एक अनूठा परिणाम कैसे उत्पन्न करेगा? – int3

1

आप बस सभी घुमावों को एक्सओआर कर सकते हैं, जो एक सममित पहचानकर्ता होगा।

संबंधित मुद्दे