यहां सभी 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
मैट्रिसेस का क्रम मायने नहीं रखता, समतुल्य मैट्रिस से विशेष पसंद कोई फर्क नहीं पड़ता, और व्हाट्सएप कोई फर्क नहीं पड़ता, हालांकि मैट्रिसेस को आउटपुट करते हैं जब तक कि आप मानव-पठनीय हैं।
आउटपुट संपूर्ण होना चाहिए।
सबसे छोटा कोड जीतता है।
संपादित करें: यह मेरी पहली गोल्फ पोस्ट है और मैंने अपने मानदंड को जीत के मापदंड पर बदल दिया है।
किसी भाषा में सबसे छोटा कोड विशेष रूप से संक्षिप्तता / गोल्फ जीत के लिए नहीं बनाया गया है ।
मुझे उम्मीद है कि इस कसौटी के बाद के पद को बदलने के लिए यह बुरा शिष्टाचार नहीं है, लेकिन मुझे लगता है कि इसे "सामान्य" भाषा में करना अधिक दिलचस्प प्रस्ताव है।