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

पायथन में मैट्रिक्स में रो-कॉलम मानदंड का पालन करने वाले तत्वों की संख्या ढूंढना


मान लीजिए हमारे पास एक बाइनरी मैट्रिक्स है; हमें मैट्रिक्स में उन तत्वों की संख्या ढूंढनी है जो निम्नलिखित नियमों का पालन करते हैं:

  • matrix[r, c] = 1
  • matrix[r, j] = 0 प्रत्येक j के लिए जब j ≠ c और matrix[i, c] = 0 प्रत्येक i के लिए जब i ≠ r।

उदाहरण के लिए, यदि इनपुट है:

001
100
010

तो आउटपुट होगा 3, क्योंकि हमारे पास सेल (0,2), (1,0) और (2,1) हैं जो मानदंडों को पूरा करते हैं।

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

प्रत्येक पंक्ति और स्तंभ का योग गिनें। एक सेल (r, c) मानदंडों को पूरा करता है यदि matrix[r][c] == 1, पंक्ति r का योग 1 है, और स्तंभ c का योग 1 है।

  • यदि मैट्रिक्स खाली है, तो 0 लौटाएं।
  • row = प्रत्येक पंक्ति के योग की सूची की गणना करें।
  • col = प्रत्येक स्तंभ के योग की सूची की गणना करें (zip(*matrix) का उपयोग करके)।
  • सभी सेल्स पर पुनरावृति करें, यदि matrix[r][c] == 1 और row[r] == 1 और col[c] == 1, तो गिनती बढ़ाएं।

पायथन कार्यान्वयन

def solve(matrix):
    if not matrix:
        return 0
    row = [sum(r) for r in matrix]
    col = [sum(c) for c in zip(*matrix)]
    m, n = len(matrix), len(matrix[0])
    res = 0
    for r in range(m):
        for c in range(n):
            if matrix[r][c] == 1 and row[r] == 1 and col[c] == 1:
                res += 1
    return res

matrix = [
    [0, 0, 1],
    [1, 0, 0],
    [0, 1, 0]
]
print(solve(matrix))

इनपुट

[[0, 0, 1],[1, 0, 0],[0, 1, 0]]

आउटपुट

3

  1. - पायथन में दिए गए सेल की पंक्ति और/या कॉलम को छोड़कर मैट्रिक्स के सभी तत्वों का योग खोजें

    मान लीजिए हमारे पास एक 2D मैट्रिक्स और सेल इंडेक्स का एक सेट है। सेल इंडेक्स को (i, j) के रूप में दर्शाया जाता है जहां i पंक्ति है और j कॉलम है, अब, प्रत्येक दिए गए सेल इंडेक्स (i, j) के लिए, हमें उन सभी मैट्रिक्स तत्वों का योग ढूंढना है जो i-वीं पंक्ति और/या j-वें कॉलम में मौजूद तत्वों को छोड़कर है

  1. - Python प्रोग्राम में मैट्रिक्स का ट्रांसपोज़ खोजना

    इस लेख में, हम नीचे दिए गए समस्या कथन के समाधान के बारे में जानेंगे। समस्या कथन - हमें एक मैट्रिक्स दिया गया है, हमें मैट्रिक्स का ट्रांसपोज़ प्रदर्शित करने की आवश्यकता है। मैट्रिक्स का ट्रांसपोज़ A[i][j] पर मौजूद मान को A[j][i] से बदलकर प्राप्त किया जाता है। आइए नीचे कार्यान्वयन में अवधारणा का न

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

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