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

जांचें कि क्या मैट्रिक्स ए को पाइथन में किसी भी सबमैट्रिक्स के कोने तत्वों की समानता को बदलकर बी में परिवर्तित किया जा सकता है

मान लीजिए कि हमारे पास दो एन एक्स एम बाइनरी मैट्रिसेस ए और बी हैं। एक ही ऑपरेशन में, हम एक सब-मैट्रिक्स (कम से कम 2x2) का चयन कर सकते हैं और कोने के तत्वों (फ्लिप बिट्स) की समता को परिवर्तित कर सकते हैं। अंत में, हमें यह जांचना होगा कि क्या मैट्रिक्स ए को किसी भी संख्या में संचालन करके बी में परिवर्तित किया जा सकता है या नहीं।

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

1 0 0
1 0 1
1 0 0


जांचें कि क्या मैट्रिक्स ए को पाइथन में किसी भी सबमैट्रिक्स के कोने तत्वों की समानता को बदलकर बी में परिवर्तित किया जा सकता है

तो आउटपुट सही होगा क्योंकि हम mat2 प्राप्त करने के लिए mat1 पर आकार (2x2) के ऊपरी बाएं वर्ग उप-मैट्रिक्स पर ऑपरेशन कर सकते हैं।

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

  • पंक्ति :=mat1 की पंक्ति गणना
  • स्तंभ :=mat1 की स्तंभ संख्या
  • 1 से पंक्ति -1 की श्रेणी में i के लिए
    • जे के लिए श्रेणी 1 से कॉलम -1 तक, करें
      • यदि mat1[i, j] mat2[i, j] के समान नहीं है, तो
        • mat1[i, j] :=mat1[i, j] XOR 1
        • mat1[0, 0] :=mat1[0, 0] XOR 1
        • mat1[0, j] :=mat1[0, j] XOR 1
        • mat1[i, 0] :=mat1[i, 0] XOR 1
  • मैं के लिए 0 से पंक्ति -1 की सीमा में, करो
    • जे के लिए 0 से कॉलम -1 तक की श्रेणी में, करें
      • यदि mat1[i, j] mat2[i, j] के समान नहीं है, तो
        • झूठी वापसी
  • सही लौटें

उदाहरण

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

def solve(mat1, mat2):
   row = len(mat1)
   column = len(mat1[0])
   for i in range(1, row):
      for j in range(1, column):
         if mat1[i][j] != mat2[i][j]:
            mat1[i][j] ^= 1
            mat1[0][0] ^= 1
            mat1[0][j] ^= 1
            mat1[i][0] ^= 1
   for i in range(row):
      for j in range(column):
         if mat1[i][j] != mat2[i][j]:
            return False
   return True
mat1 = [
         [1, 0, 0],
         [1, 0, 1],
         [1, 0, 0]]
mat2 = [
         [0, 1, 0],
         [0, 1, 1],
         [1, 0, 0]]
print(solve(mat1, mat2))

इनपुट

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

आउटपुट

True

  1. पायथन में मैट्रिक्स के विशिष्ट तत्वों/पंक्तियों को योग करने के लिए टेंसरफ्लो का उपयोग कैसे किया जा सकता है?

    Tensorflow एक मशीन लर्निंग फ्रेमवर्क है जो Google द्वारा प्रदान किया जाता है। यह एक ओपन-सोर्स फ्रेमवर्क है जिसका उपयोग एल्गोरिदम, गहन शिक्षण अनुप्रयोगों और बहुत कुछ को लागू करने के लिए पायथन के साथ संयोजन में किया जाता है। इसका उपयोग अनुसंधान और उत्पादन उद्देश्यों के लिए किया जाता है। इसमें अनुकूलन

  1. यह जांचने के लिए कार्यक्रम कि हम कितने तरीकों से अजगर में एक मैट्रिक्स की खाली कोशिकाओं को चुन सकते हैं

    मान लीजिए कि हमारे पास एक एन एक्स एन बाइनरी मैट्रिक्स है जहां 0 खाली कोशिकाओं के लिए है और 1 एक अवरुद्ध सेल है, हमें एन खाली कोशिकाओं को चुनने के तरीकों की संख्या का पता लगाना होगा जैसे कि प्रत्येक पंक्ति और प्रत्येक कॉलम में कम से कम एक चुना हुआ सेल हो। यदि उत्तर बहुत बड़ा है तो वापसी परिणाम मॉड 10

  1. कैसे जांचें कि एक स्ट्रिंग को पायथन में फ्लोट में परिवर्तित किया जा सकता है या नहीं?

    स्ट्रिंग को फ़्लोट करने के लिए पार्स करने के लिए, आप निम्न का उपयोग कर सकते हैं: try:     print float('112.15') except ValueError:     print 'Cannot parse' यह आपको आउटपुट देगा: 112.15 अगर आपकी स्ट्रिंग को पार्स नहीं किया जा सकता है, तो यह एक वैल्यू एरर देगा। आप