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

पायथन में दी गई पंक्ति और स्तंभ राशियों के लिए मान्य मैट्रिक्स खोजने का कार्यक्रम

मान लीजिए कि हमारे पास गैर-ऋणात्मक मानों के साथ दो सरणियाँ हैं rowSum और colSum जहाँ rowSum[i] में ith पंक्ति में तत्वों का योग है और colSum[j] में 2D मैट्रिक्स के jth कॉलम में तत्वों का योग है। हमें आकार के गैर-ऋणात्मक मानों (पंक्तिसम आकार x colSum आकार) के साथ किसी भी मैट्रिक्स को खोजना होगा जो दिए गए रोसम और कोलसम मानों को संतुष्ट करता है।

इसलिए, यदि इनपुट पंक्तिसम =[13,14,12] colSum =[9,13,17] जैसा है, तो आउटपुट होगा

9 4 0
0 9 5
0 0 12

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

  • मैट्रिक्स:=खाली मैट्रिक्स बनाएं
  • विज़िट किया :=एक नया सेट
  • एक फ़ंक्शन को न्यूनतम () परिभाषित करें। इसमें r,c
  • . लगेगा
  • min_total :=अनंत
  • टाइप करें:=ब्लैंक स्ट्रिंग
  • i के लिए 0 से लेकर r-1 के आकार तक के लिए
    • अगर r[i]
    • सूचकांक:=मैं
    • प्रकार :='पंक्ति'
    • min_total :=r[i]
  • i के लिए 0 से c-1 के आकार के बीच में
    • अगर c[i]
    • min_total :=c[i]
    • टाइप करें:='col'
    • सूचकांक:=मैं
  • यदि प्रकार 'पंक्ति' के समान है, तो
    • r[index] :=अनंतता
    • i के लिए 0 से c-1 के आकार की श्रेणी में, do
      • यदि c[i] अनंत के समान नहीं है और c[i]>=min_total, तो
        • c[i] :=c[i] - min_total
        • मैट्रिक्स[इंडेक्स, i] :=min_total
        • लूप से बाहर आएं
  • यदि प्रकार 'col' के समान है, तो
    • c[सूचकांक] :=अनंत
    • i के लिए 0 से लेकर r-1 के आकार तक के लिए
      • यदि r[i] अनंत के समान नहीं है और r[i]>=min_total, तो
        • r[i] :=r[i] - min_total
        • मैट्रिक्स[i, अनुक्रमणिका] :=min_total
        • लूप से बाहर आएं
  • विज़िट में जोड़ी (इंडेक्स, टाइप) डालें
  • मुख्य विधि से निम्न कार्य करें -
  • जबकि विज़िट किए गए का आकार r +len(c) के आकार के समान नहीं है, करें
  • न्यूनतम(आर, सी)
  • रिटर्न मैट्रिक्स
  • उदाहरण

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

    def solve(r, c):
       matrix = [[0]*len(c) for _ in range(len(r))]
       visited = set()
    
       def minimum(r,c):
          min_total = float('inf')
       
          type = ''
          for i in range(len(r)):
             if(r[i] < min_total):
                index = i
                type = 'row'
                min_total = r[i]
    
          for i in range(len(c)):
             if(c[i] < min_total):
                min_total = c[i]
                type = 'col'
                index = i
    
          if(type == 'row'):
             r[index] = float('inf')
    
             for i in range(len(c)):
                if(c[i] != float('inf') and c[i] >= min_total):
                   c[i] -= min_total
                   matrix[index][i] = min_total
                   break
    
          if(type == 'col'):
             c[index] = float('inf')
             for i in range(len(r)):
                if(r[i] != float('inf') and r[i] >= min_total):
                   r[i] -= min_total
                   matrix[i][index] = min_total
                   break
    
          visited.add((index,type))
    
       while len(visited) != len(r)+len(c):
          minimum(r,c)
    
       return matrix
    
    rowSum = [13,14,12]
    colSum = [9,13,17]
    print(solve(rowSum, colSum))

    इनपुट

    [13,14,12], [9,13,17]

    आउटपुट

    [[9, 4, 0], [0, 9, 5], [0, 0, 12]]

    1. पायथन में दिए गए सेल की पंक्ति और-या कॉलम में तत्वों को छोड़कर मैट्रिक्स में सभी तत्वों का योग खोजें

      मान लीजिए कि हमारे पास 2D मैट्रिक्स और सेल इंडेक्स का एक सेट है। सेल इंडेक्स को (i, j) के रूप में दर्शाया जाता है, जहां i पंक्ति है और j कॉलम है, अब, प्रत्येक दिए गए सेल इंडेक्स (i, j) के लिए, हमें ith पंक्ति में मौजूद तत्वों को छोड़कर सभी मैट्रिक्स तत्वों का योग खोजना होगा और /या jth कॉलम। तो, अगर

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

      इस लेख में, हम नीचे दिए गए समस्या कथन के समाधान के बारे में जानेंगे। समस्या कथन - हमें एक मैट्रिक्स दिया गया है, हमें मैट्रिक्स के ट्रांसपोज़ को प्रदर्शित करने की आवश्यकता है। A[i][j] पर मौजूद मान को A[j][i] से बदलकर एक मैट्रिक्स का स्थानान्तरण प्राप्त किया जाता है। आइए अब नीचे दिए गए कार्यान्वय

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

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