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

पायथन में दिए गए बाइनरी मैट्रिक्स में वर्ग सबमैट्रिस की संख्या गिनने का कार्यक्रम

मान लीजिए कि हमारे पास 2D बाइनरी मैट्रिक्स है। हमें मैट्रिक्स में मौजूद वर्ग सबमैट्रिस की कुल संख्या ज्ञात करनी है, जहां सभी तत्व 1 हैं।

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

0 1 1
0 1 1

तो आउटपुट 5 होगा, क्योंकि एक (2 × 2) वर्ग है, और चार (1 × 1) वर्ग हैं

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

  • यदि चटाई खाली है, तो
    • वापसी 0
  • सी :=0
  • मैं के लिए 0 से लेकर चटाई की पंक्ति गणना तक, करें
    • जे के लिए रेंज 0 से मैट के कॉलम काउंट तक, करें
      • अगर चटाई[i, j] 1 है, तो
        • अगर मैं 0 है या j 0 है, तो
          • c :=c + 1
        • अन्यथा,
          • temp =(न्यूनतम (mat[i-1, j-1], mat[i, j-1] और mat[i-1, j]) + mat[i, j]
          • सी:=सी + अस्थायी
          • चटाई[i, j] :=अस्थायी
  • वापसी सी

उदाहरण

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

def solve(mat):
   if mat == []:
      return 0
   c = 0

   for i in range(len(mat)):
      for j in range(len(mat[0])):
         if mat[i][j] == 1:
            if i == 0 or j == 0:
               c += 1
            else:
               temp = (min(mat[i - 1][j - 1], mat[i][j - 1], mat[i - 1][j]) + mat[i][j])
               c += temp
               mat[i][j] = temp
   return c

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

इनपुट

[[2, 6],[3, 4],[4, 7],[5, 5]]

आउटपुट

5

  1. पायथन में दिए गए किनारों को शामिल करने वाले अद्वितीय पथों की संख्या की गणना करने का कार्यक्रम

    मान लीजिए कि हमारे पास (u, v) के रूप में किनारों की एक सूची है और ये एक पेड़ का प्रतिनिधित्व कर रहे हैं। प्रत्येक किनारे के लिए हमें इनपुट में दिए गए क्रम में उसी क्रम में अद्वितीय पथों की कुल संख्या ज्ञात करनी होगी जिसमें उक्त किनारे शामिल हैं। इसलिए, यदि इनपुट किनारों की तरह है =[[0, 1],[0, 2],[1

  1. अजगर में मैट्रिक्स में घिरे द्वीपों की संख्या गिनने का कार्यक्रम

    मान लीजिए कि हमारे पास एक बाइनरी मैट्रिक्स है। जहां 1 भूमि का प्रतिनिधित्व करता है और 0 पानी का प्रतिनिधित्व करता है। जैसा कि हम जानते हैं कि एक द्वीप 1s का एक समूह है जो एक साथ समूहीकृत होता है जिसकी परिधि पानी से घिरी होती है। हमें पूरी तरह से घिरे हुए द्वीपों की संख्या ज्ञात करनी है। तो, अगर इनप

  1. लगातार 1 के बिना बाइनरी स्ट्रिंग्स की संख्या गिनने के लिए पायथन प्रोग्राम

    इस लेख में, हम नीचे दिए गए समस्या कथन के समाधान के बारे में जानेंगे। समस्या कथन - हमें एक धनात्मक पूर्णांक N दिया गया है, हमें लंबाई N के साथ उपलब्ध सभी संभावित भिन्न बाइनरी स्ट्रिंग्स को गिनने की आवश्यकता है ताकि स्ट्रिंग में कोई क्रमागत 1 मौजूद न हो। आइए अब नीचे दिए गए कार्यान्वयन में समाधान देख