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

Python का उपयोग करके बाइनरी मैट्रिक्स में विशेष स्थितियों की संख्या खोजें

मान लीजिए हमारे पास m x n क्रम का एक बाइनरी मैट्रिक्स है, हमें मैट्रिक्स में विशेष स्थितियों की संख्या ढूंढनी है। एक स्थिति (i,j) विशेष स्थिति होती है जब mat[i,j] = 1 और पंक्ति i और स्तंभ j में अन्य सभी तत्व 0 होते हैं।

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

10000
00100
00011
01000

तो आउटपुट 3 होगा, यहां विशेष स्थितियां (0, 0), (1,2) और (3,1) हैं।

हल करने के चरण

  • special := 0
  • i को 0 से मैट्रिक्स की पंक्ति संख्या तक के लिए:
    • यदि मैट्रिक्स[i] पंक्ति में 1 की संख्या 1 है:
      • numOfOne := 0
      • indexOfOne := मैट्रिक्स[i] में 1 की स्थिति
      • j को 0 से मैट्रिक्स के स्तंभ आकार तक के लिए:
        • यदि matrix[j][indexOfOne] == 1, तो numOfOne++
        • यदि numOfOne > 1, तो लूप से बाहर निकलें
      • यदि numOfOne == 1, तो special++
  • special वापस करें

उदाहरण (Python)

def solve(matrix):
    special = 0
    for i in range(len(matrix)):
        if matrix[i].count(1) == 1:
            numOfOne = 0
            indexOfOne = matrix[i].index(1)
            for j in range(len(matrix)):
                if matrix[j][indexOfOne] == 1:
                    numOfOne += 1
                if numOfOne > 1:
                    break
            if numOfOne == 1:
                special += 1
    return special

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

इनपुट

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

आउटपुट

3
  1. Python से बाइनरी ग्रिड में मेजर डायगोनल के ऊपर ज़ीरोज़ के लिए मिनिमम स्वैप्स कैसे ढूंढें? Python से बाइनरी ग्रिड में मेजर डायगोनल के ऊपर ज़ीरोज़ के लिए मिनिमम स्वैप्स कैसे ढूंढें?

    n×n बाइनरी मैट्रिक्स में एडजेसेंट रो स्वैप्स से मेजर डायगोनल के ऊपर सभी एलिमेंट्स 0 करने के लिए मिनिमम स्वैप्स ढूंढें। एल्गोरिदम प्रत्येक रो के लिए राइटमोस्ट 1 की पोजीशन ढूंढें → m[i] = n - j - 1 (डायगोनल से दूरी)। ग्रीडी: i=0 से n-1, ऐसी रो ढूंढें जिसका = n-i-1 हो (यानी डायगोनल के ऊपर 1 न हो)। उसे

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

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

  1. - पायथन प्रोग्राम: बाइनरी मैट्रिक्स में डुप्लिकेट रो ढूंढना

    एक बाइनरी मैट्रिक्स दिया गया है जिसमें 0 और 1 हैं, हमारा कार्य डुप्लिकेट रो ढूंढना और प्रिंट करना है।पायथन Counter() मेथड प्रदान करता है जिसका उपयोग यहां किया जाता है।उदाहरणInput: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 Output: (1, 1, 1, 1) (0, 0, 0, 0)एल्गोरिदमचरण 1: एक बाइनरी मैट्रिक्स बनाएं, केवल 0 और 1