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

पायथन में नेक्स्ट सेल मैट्रिक्स स्टेट का अगला स्टेट ढूंढने का प्रोग्राम


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

  • दो या तीन जीवित पड़ोसियों वाला कोई भी जीवित सेल जीवित रहता है।
  • तीन जीवित पड़ोसियों वाला कोई भी मृत सेल जीवित सेल बन जाता है।
  • अन्य सभी सेल मर जाते हैं।

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

1100
0100
0101
1101

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

1100
0100
0100
1100

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

  • n := मैट्रिक्स की पंक्ति आकार, m := मैट्रिक्स का स्तंभ आकार
  • res := n x m आकार की एक मैट्रिक्स, और 0 से भरें
  • i को 0 से n तक रेंज में, करें
    • j को 0 से m तक रेंज में, करें
      • s := 0
      • यदि matrix[i, j] 0 के समान है, तो
        • k को i - 1 से i + 1 तक रेंज में, करें
          • h को j - 1 से j + 1 तक रेंज में, करें
            • यदि 0 <= k < n और 0 <= h < m, तो
              • s := s + matrix[k, h]
        • res[i, j] := [0, 1, true जब s 3 के समान है]
      • अन्यथा,
        • k को i - 1 से i + 1 तक रेंज में, करें
          • h को j - 1 से j + 1 तक रेंज में, करें
            • यदि 0 <= k < n और 0 <= h < m, तो
              • s := s + matrix[k, h]
        • यदि s या तो 3 या 4 है, तो
          • res[i, j] := 1
    • res लौटाएं

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

    उदाहरण

    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. पायथन में बहुभुज का क्षेत्रफल खोजने का प्रोग्राम पायथन में बहुभुज का क्षेत्रफल खोजने का प्रोग्राम

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

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

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

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

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