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

पायथन में मैट्रिक्स में क्रमागत एलिमेंट्स की संख्या ढूंढने का प्रोग्राम जिनका GCD 1 से बड़ा है

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

इसलिए, यदि इनपुट है:

37912
5946
78510

और m = 4, n = 3; तो आउटपुट 3 होगा।

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

समाधान दृष्टिकोण

  • 3D मैट्रिक्स बनाएं GCD मानों को संग्रहीत करने के लिए
  • सभी संभावित पंक्ति रेंज के लिए पुनरावृति करें
  • प्रत्येक कॉलम के लिए संचयी GCD की गणना करें
  • लगातार कॉलम ट्रैक करें जहां GCD > 1 है
  • अधिकतम लंबाई लौटाएं

उदाहरण कार्यान्वयन

from math import gcd

def solve(n, m, input_list):
    mat = [[[0] * m for _ in range(n)] for _ in range(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. Python में गोदाम में रखे जाने वाले बॉक्स की संख्या खोजने का प्रोग्राम Python में गोदाम में रखे जाने वाले बॉक्स की संख्या खोजने का प्रोग्राम

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

  1. पायथन प्रोग्राम: मैट्रिक्स का ट्रांसपोज़ ढूंढें पायथन प्रोग्राम: मैट्रिक्स का ट्रांसपोज़ ढूंढें

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

  1. - Python में 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ध्यान दें