यहां सभी 2x2 बाइनरी मैट्रिसेस हैं
#0 #1 #2 #3 #4 #5 #6 #7 #8 #9 #10 #11 #12 #13 #14 #15
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
00 00 00 00 01 01 01 01 10 10 10 10 11 11 11 11
00 01 10 11 00 01 10 11 00 01 10 11 00 01 10 11
दो बाइनरी स्क्वायर मैट्रिसेस रिलेशन के तहत बराबर होते हैं ~यदि किसी को क्षैतिज या वर्टिकल वेस में किसी भी संख्या पर प्रतिबिंब द्वारा मैप किया जा सकता है ।
#1 ~ #2ऊर्ध्वाधर अक्ष में प्रतिबिंब के तहत इसलिए हमें केवल इनमें से एक को रखने की आवश्यकता है (यह कोई फर्क नहीं पड़ता कि कौन सा)। इसी तरह #3 ~ #12, #6 ~ #9और इसी तरह ।
लक्ष्य एक ऐसा प्रोग्राम तैयार करना है जो एक एकल इनपुट लेता है Nऔर कई N x Nबाइनरी मैट्रिसेस के रूप में प्रिंट करता है जैसे कि आउटपुट में सभी मैट्रिसेस उपरोक्त संबंध के तहत अलग हैं।
हाथ से लहरदार छद्मकोड में, एक स्वीकार्य समाधान होगा
define M[i] = N by N matrix with bit pattern equal to i
for i = 0 to (2^(N^2)) - 1
valid = true
for j = i+1 to (2^(N^2)) - 1
if (equivalent(M[i], M[j]))
valid = false
break
if (valid)
print (M[i])
इनपुट के लिए N=2एक वैध आउटपुट होगा
00 00 00 01 10 01 11
00 01 11 01 01 11 11
लेकिन एक ही समतुल्य वर्ग से अलग-अलग मैट्रिस का चयन करके एक और वैध आउटपुट होगा
00 10 11 11 11 10 01
00 00 00 10 11 10 10
मैट्रिसेस का क्रम मायने नहीं रखता, समतुल्य मैट्रिस से विशेष पसंद कोई फर्क नहीं पड़ता, और व्हाट्सएप कोई फर्क नहीं पड़ता, हालांकि मैट्रिसेस को आउटपुट करते हैं जब तक कि आप मानव-पठनीय हैं।
आउटपुट संपूर्ण होना चाहिए।
सबसे छोटा कोड जीतता है।
संपादित करें: यह मेरी पहली गोल्फ पोस्ट है और मैंने अपने मानदंड को जीत के मापदंड पर बदल दिया है।
किसी भाषा में सबसे छोटा कोड विशेष रूप से संक्षिप्तता / गोल्फ जीत के लिए नहीं बनाया गया है ।
मुझे उम्मीद है कि इस कसौटी के बाद के पद को बदलने के लिए यह बुरा शिष्टाचार नहीं है, लेकिन मुझे लगता है कि इसे "सामान्य" भाषा में करना अधिक दिलचस्प प्रस्ताव है।