Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Python

एक मैट्रिक्स में लगातार तत्वों की संख्या का पता लगाने के लिए कार्यक्रम जिसका जीसीडी पायथन में 1 से अधिक है

मान लीजिए कि हमें एक मैट्रिक्स दिया गया है जिसमें n पंक्तियाँ और m कॉलम हैं। हमें मैट्रिक्स में लगातार तत्वों की सबसे बड़ी संख्या का पता लगाना है जहां तत्वों का जीसीडी 1 से अधिक है। लगातार तत्व या तो क्षैतिज या लंबवत रूप से मैट्रिक्स में स्थित हो सकते हैं।

तो, अगर इनपुट पसंद है

3 7 9 12
5 9 4 6
7 8 5 10

और एम =4, एन =3; तो आउटपुट 3 होगा।

दिए गए मैट्रिक्स का चौथा कॉलम 12, 6, 10 है। इस कॉलम के तत्वों का जीसीडी 2 है। चूंकि तीन तत्व हैं, उत्तर 3 है।

इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -

  • mat :=आयामों की एक नई 3d सूची m x n x n
  • res :=0
    • मैं के लिए 0 से n की सीमा में, करते हैं
      • जे के लिए i से n तक, करें
        • gcd_temp :=0
        • x :=0
        • k के लिए 0 से m की सीमा में, करें
          • यदि i, j के समान है, तो
            • mat[i, j, k] :=input_list[i, k]
          • अन्यथा,
            • mat[i, j, k] =तत्वों का gcd(mat[i, j-1, k], input_list[j, k])
          • gcd_temp =तत्वों का gcd (gcd_temp, mat[i, j, k])
          • अगर gcd_temp> 1, तो
            • x :=x + j - i + 1
          • अन्यथा,
            • res :=अधिकतम रेस, x
            • अगर चटाई[i, j, k]> 1, तो
              • gcd_temp :=mat[i, j, k]
              • x :=j - i + 1
    • res :=अधिकतम रेस, x
  • रिटर्न रेस

उदाहरण

आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -

from math import gcd
def solve(n, m, input_list):
   mat = [[[0] *m] *n] *n
   res = 0
   for i in range(n):
      for j in range(i, n):
         gcd_temp = 0
         x = 0
         for k in range(m):
            if i == j:
               mat[i][j][k] = input_list[i][k]
            else:
               mat[i][j][k] = gcd(mat[i][j-1][k], input_list[j][k])
gcd_temp = gcd(gcd_temp, mat[i][j][k])
if gcd_temp > 1:
x += j - i + 1
else:
res = max(res,x)
if mat[i][j][k] > 1:
gcd_temp = mat[i][j][k]
x = j - i + 1
res = max(res,x)
return res
print(solve(3, 4, [[3, 7, 9, 12], [5, 9, 4, 6], [7, 8, 5, 10]]))

इनपुट

3, 4, [[3, 7, 9, 12], [5, 9, 4, 6], [7, 8, 5, 10]]

आउटपुट

3

  1. पायथन में गोदाम में रखे जाने वाले बक्सों की संख्या का पता लगाने का कार्यक्रम

    मान लीजिए, हमारे पास पूर्णांक वाले दो सरणियाँ हैं। एक सूची में कुछ इकाई चौड़ाई वाले बक्सों की ऊँचाई होती है और दूसरी सूची में गोदाम में कमरों की ऊँचाई होती है। कमरों की संख्या 0...n है, और कमरों की ऊंचाई सरणी गोदाम में उनके संबंधित सूचकांक में प्रदान की जाती है। हमें पता लगाना है कि कितने बक्सों को

  1. एक मैट्रिक्स के स्थानान्तरण को खोजने के लिए पायथन कार्यक्रम

    इस लेख में, हम दिए गए समस्या कथन को हल करने के लिए समाधान और दृष्टिकोण के बारे में जानेंगे। समस्या कथन एक मैट्रिक्स को देखते हुए, हमें उसी मैट्रिक्स में ट्रांसपोज़ को स्टोर करना होगा और उसे प्रदर्शित करना होगा। पंक्तियों को कॉलम और कॉलम को पंक्तियों में बदलकर मैट्रिक्स का स्थानांतरण प्राप्त किया ज

  1. पायथन में x से बड़ी सबसे छोटी संख्या कैसे ज्ञात करें?

    अंतर्निहित फ़ंक्शन ceil() सबसे छोटी संख्या देता है जो दी गई संख्या से बड़ी है >>> x=6.67 >>> import math >>> math.ceil(x) 7 >>> x=1.13 >>> math.ceil(x) 2 >>> x=5.78 >>> math.ceil(x) 6 >>> x=-5.78 >>> math.ceil(x) -5 ध्