लैटिन स्क्वायर एक मैट्रिक्स है जिसमें एक विशेष पैटर्न होता। आइए पैटर्न की जांच के लिए अलग-अलग उदाहरण देखें।
1 2 2 1 1 2 3 3 1 2 2 3 1 1 2 3 4 4 1 2 3 3 4 1 2 2 3 4 1
आपको जो लैटिन स्क्वायर मिलेगा वह ऊपर दिए गए उदाहरणों में आप देख सकते हैं कि अलग-अलग आकार का होगा। लेकिन, यदि आप उपरोक्त मैट्रिक्स के पैटर्न को ध्यान से देखते हैं, तो आप पाएंगे कि पिछली पंक्ति की अंतिम संख्या अगली पंक्ति के पहले तत्व के रूप में आती है।
यही लैटिन स्क्वायर में छिपा पैटर्न है। हमें इनपुट n के लिए उपरोक्त मैट्रिक्स जनरेट करने वाला प्रोग्राम लिखना है।
एल्गोरिदम
nको किसी भी संख्या से इनिशियलाइज़ करें जो आपको पसंद हो।n + 1मान के साथ एक संख्या इनिशियलाइज़ करें, इसेfirst_half_endकहें।- एक लूप लिखें जो 1 से
nतक दोनों समावेशी पुनरावृति करता है।first_half_endके मान कोfirst_half_startनामक वेरिएबल को असाइन करें।- एक लूप लिखें जब तक
first_half_startnके मान तक नहीं पहुंच जाता।- पुनरावृति वेरिएबल यानी
first_half_startप्रिंट करें।
- पुनरावृति वेरिएबल यानी
- एक लूप लिखें जो 1 से
first_half_endतक पुनरावृति करता है।- पुनरावृति वेरिएबल प्रिंट करें।
first_half_endके मान को 1 से घटाएं।- अगली पंक्ति पर जाएं।
कार्यान्वयन
पायथन में उपरोक्त एल्गोरिदम का कार्यान्वयन निम्नलिखित है
def generateLatinSquare(n):
first_half_end = n + 1
for i in range(1, n + 1):
first_half_start = first_half_end
while (first_half_start <= n):
print(first_half_start, end=" ")
first_half_start += 1
for second_half_start in range(1, first_half_end):
print(second_half_start, end=" ")
first_half_end -= 1
print()
print()
if __name__ == "__main__":
generateLatinSquare(2)
generateLatinSquare(3)
generateLatinSquare(4)
आउटपुट
यदि आप उपरोक्त कोड चलाते हैं, तो आपको निम्नलिखित परिणाम मिलेगा।
1 2 2 1 1 2 3 3 1 2 2 3 1 1 2 3 4 4 1 2 3 3 4 1 2 2 3 4 1