एक लैटिन वर्ग एक वर्ग है जिसमें X या Y स्तंभों में कोई दोहराए गए प्रतीक नहीं हैं । उदाहरण के लिए:
ABCD
DABC
CDAB
BCDA
ऐसा ही एक वर्ग है। ध्यान दें कि प्रत्येक स्तंभ और पंक्ति में समान 4 अक्षरों का क्रमचय कैसे होता है।
हालांकि, हमारे लैटिन वर्ग में एक समस्या है: अगर मुझे दूसरी पंक्ति ( DABC
) 1 को बाईं ओर घुमाने के लिए था, तो मैं इसे समाप्त कर दूंगा ABCD
, जो इसके ऊपर क्रमचय के समान है। यदि किसी 1 स्तंभ / पंक्ति को घुमाना और दूसरा स्तंभ / पंक्ति प्राप्त करना असंभव है, तो हम वर्ग को रोटेशन को सुरक्षित मानते हैं ।
उदाहरण के लिए:
ABCD
BDAC
CADB
DCBA
सुरक्षित है। ग्रिड में निम्नलिखित गुण हैं:
- बिंदु [0, N] Nth प्रतीक का उपयोग करता है
- बिंदु [0, N] और [N, 0] हमेशा एक ही प्रतीक हैं । (मैं यह भी कहना चाहूंगा कि [x, y] और [y, x] भी हमेशा एक ही अक्षर होते हैं, लेकिन मैं इसे साबित नहीं कर सकता)
आपका कार्य 1 रोटेशन-सुरक्षित लैटिन वर्ग का प्रिंट आउट करना है, जब एन पास हो गया। मुझे परवाह नहीं है यदि आप पत्र, संख्या, एक सूची, या एक 2 डी सरणी का उत्पादन करते हैं। यदि आप संख्याओं का उपयोग करते हैं, तो शीर्ष स्तंभ और पंक्ति 0,1,2,3,...
(उस क्रम में) होनी चाहिए । यदि आप अक्षरों का उपयोग करते हैं, तो यह होना चाहिएA,B,C,D,....
उदाहरण के लिए, यदि आपका इनपुट 4 था, तो आपको या तो प्रिंट करना चाहिए:
0,1,2,3 0,1,2,3
1,3,0,2 or 1,0,3,2
2,0,3,1 2,3,1,0
3,2,1,0 3,2,0,1
4 से कम आकार के कोई रोटेशन-सुरक्षित लैटिन वर्ग नहीं हैं। मुझे परवाह नहीं है कि आपका कार्यक्रम क्या है यदि एन 4. से कम है। उत्सुक के लिए, रोटेशन-सुरक्षित वर्गों की संख्या है (4 से शुरू) 2,5,5906,(too long to calculate)
यह एक कोड-गोल्फ है , इसलिए अपनी पसंदीदा भाषा में यथासंभव उत्तर देने का प्रयास करें!
1,2,3,...
?
N
अपर्याप्त यादृच्छिक संख्या गुणवत्ता के कारण?)