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

कार्यक्रम अजगर में अगले सेल मैट्रिक्स राज्य के अगले राज्य को खोजने के लिए?

मान लीजिए कि हमारे पास एक 2D बाइनरी मैट्रिक्स है जहां 1 का अर्थ है एक जीवित कोशिका और 0 का अर्थ है एक मृत कोशिका। एक सेल के पड़ोसी इसके तत्काल क्षैतिज, लंबवत और विकर्ण कोशिकाएं हैं। हमें इन नियमों का उपयोग करके मैट्रिक्स की अगली स्थिति ढूंढनी होगी

  • दो या तीन जीवित पड़ोसियों के साथ कोई भी जीवित कोशिका रहती है।

  • तीन जीवित पड़ोसियों के साथ कोई भी मृत कोशिका एक जीवित कोशिका बन जाती है।

  • अन्य सभी कोशिकाएं मर जाती हैं।

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

1 1 0 0
0 1 0 0
0 1 0 1
1 1 0 1

तो आउटपुट होगा

1 1 0 0
0 1 0 0
0 1 0 0
1 1 0 0

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

  • n :=मैट्रिक्स की पंक्ति का आकार, m :=मैट्रिक्स का स्तंभ आकार

  • res :=आकार n x m का एक मैट्रिक्स, और 0 से भरें

  • मेरे लिए 0 से n की सीमा में, करें

    • j के लिए 0 से m की सीमा में, करें

      • एस:=0

      • यदि मैट्रिक्स [i, j] 0 के समान है, तो

        • k के लिए i - 1 से i + 1 की श्रेणी में, करें

          • या h रेंज में j-1 से j + 1, do

            • यदि 0 <=k

              • एस:=एस + मैट्रिक्स [के, एच]

        • res[i, j] :=[0, 1, सत्य जब s 3 के समान हो]

      • अन्यथा,

        • k के लिए i - 1 से i + 1 की श्रेणी में, करें

          • j - 1 से j + 1 की श्रेणी में h के लिए, करें

            • यदि 0 <=k

              • एस:=एस + मैट्रिक्स [के, एच]

        • अगर s या तो 3 या 4 है, तो

          • रेस [i, j] :=1

  • रिटर्न रेस

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

उदाहरण

class Solution:
   def solve(self, matrix):
      n, m = len(matrix), len(matrix[0])
      res = [[0 for j in range(m)] for i in range(n)]
      for i in range(n):
         for j in range(m):
            s = 0
            if matrix[i][j] == 0:
               for k in range(i - 1, i + 2):
                  for h in range(j - 1, j + 2):
                     if 0 <= k < n and 0 <= h < m:
                        s += matrix[k][h]
               res[i][j] = [0, 1][s == 3]
            else:
               for k in range(i - 1, i + 2):
                  for h in range(j - 1, j + 2):
                     if 0 <= k < n and 0 <= h < m:
                        s += matrix[k][h]
               if s in [3, 4]:
                  res[i][j] = 1
      return res

ob = Solution()
matrix = [
   [1, 1, 0, 0],
   [0, 1, 0, 0],
   [0, 1, 0, 1],
   [1, 1, 0, 1]
]

print(ob.solve(matrix))

इनपुट

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

आउटपुट

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

  1. पायथन में बहुभुज का क्षेत्रफल ज्ञात करने का कार्यक्रम

    मान लीजिए कि हमारे पास ऑर्डर किए गए बिंदुओं की एक सूची है जो 2 डी विमान पर एक साधारण बहुभुज समापन बिंदु का प्रतिनिधित्व करती है। हमें इस बहुभुज का क्षेत्रफल ज्ञात करना है। इसलिए, यदि इनपुट अंक =[(0, 0), (0,5), (3, 5), (3,0)] की तरह है, तो आउटपुट 15 होगा। इसे हल करने के लिए, हम इन चरणों का पालन क

  1. पायथन में बहुभुज की परिधि खोजने का कार्यक्रम

    मान लीजिए कि हमारे पास ऑर्डर किए गए बिंदुओं की एक सूची है जो 2 डी विमान पर एक साधारण बहुभुज समापन बिंदु का प्रतिनिधित्व करती है। हमें इस बहुभुज का परिमाप ज्ञात करना है। इसलिए, यदि इनपुट अंक =[(0, 0), (0,5), (3, 5), (3,0)] की तरह है, तो आउटपुट 16 होगा क्योंकि दो भुजाओं की लंबाई 3 है और दो भुजाओं

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

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