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

Python में वर्ग उप-मैट्रिक्स को ट्रांसपोज़ करके मैट्रिक्स रूपांतरण की जांच कैसे करें?

मान लीजिए हमारे पास दो N X M मैट्रिक्स mat1 और mat2 हैं। एक ऑपरेशन में, हम mat1 में किसी भी वर्ग उप-मैट्रिक्स को ट्रांसपोज़ कर सकते हैं। हमें यह जांचना है कि क्या हम दिए गए ऑपरेशन को करके mat1 से mat2 प्राप्त कर सकते हैं या नहीं।

तो, यदि इनपुट है

567
123
689


562
173
689

तो आउटपुट True होगा, क्योंकि यदि हम mat1 के शीर्ष दाएं 2x2 उप-मैट्रिक्स का ट्रांसपोज़ लेते हैं, तो हमें mat2 मिल जाएगा।

हल करने के चरण

  • row := मैट्रिक्स की पंक्ति संख्या
  • column := मैट्रिक्स की स्तंभ संख्या
  • रेंज 0 से row - 1 तक के लिए i, करें:
    • temp1 := एक नई सूची, temp2 := एक नई सूची
    • r := i, col := 0
    • जब तक r >= 0 और col < column, तब तक:
      • mat1[r, col] को temp1 में डालें
      • mat2[r, col] को temp2 में डालें
      • r := r - 1, col := col + 1
    • temp1 और temp2 सूचियों को क्रमबद्ध करें
    • रेंज 0 से temp1 के आकार - 1 तक के लिए i, करें:
      • यदि temp1[i], temp2[i] के समान नहीं है, तो:
        • False लौटाएं
  • रेंज 1 से column - 1 तक के लिए j, करें:
    • temp1 := एक नई सूची, temp2 := एक नई सूची
    • r := row - 1, col := j
    • जब तक r >= 0 और col < column, तब तक:
      • mat1[r, col] को temp1 में डालें
      • mat2[r, col] को temp2 में डालें
      • r := r - 1, col := col + 1
    • temp1 और temp2 सूचियों को क्रमबद्ध करें
    • रेंज 0 से temp1 के आकार - 1 तक के लिए i, करें:
      • यदि temp1[i], temp2[i] के समान नहीं है, तो:
        • False लौटाएं
  • True लौटाएं

उदाहरण

def solve(mat1, mat2):
    row = len(mat1)
    column = len(mat1[0])
    for i in range(row):
        temp1 = []
        temp2 = []
        r = i
        col = 0
        while r >= 0 and col < column:
            temp1.append(mat1[r][col])
            temp2.append(mat2[r][col])
            r -= 1
            col += 1
        temp1.sort()
        temp2.sort()
        for i in range(len(temp1)):
            if temp1[i] != temp2[i]:
                return False
    for j in range(1, column):
        temp1 = []
        temp2 = []
        r = row - 1
        col = j
        while r >= 0 and col < column:
            temp1.append(mat1[r][col])
            temp2.append(mat2[r][col])
            r -= 1
            col += 1
        temp1.sort()
        temp2.sort()
        for i in range(len(temp1)):
            if temp1[i] != temp2[i]:
                return False
    return True

mat1 = [
    [5, 6, 7],
    [1, 2, 3],
    [6, 8, 9]]
mat2 = [
    [5, 6, 2],
    [1, 7, 3],
    [6, 8, 9]]
print(solve(mat1, mat2))

इनपुट

[[5, 6, 7], [1, 2, 3], [6, 8, 9]], [[5, 6, 2], [1, 7, 3], [6, 8, 9]]

आउटपुट

True
  1. Python में मैट्रिक्स के खाली सेल चुनने के कितने तरीके हैं, इसकी जांच करने का प्रोग्राम Python में मैट्रिक्स के खाली सेल चुनने के कितने तरीके हैं, इसकी जांच करने का प्रोग्राम

    मान लीजिए हमारे पास एक N x N बाइनरी मैट्रिक्स है जहां 0 खाली सेल के लिए है और 1 ब्लॉक्ड सेल है, हमें N खाली सेल चुनने के तरीकों की संख्या ढूंढनी है ताकि हर पंक्ति और हर कॉलम में कम से कम एक चुना हुआ सेल हो। यदि उत्तर बहुत बड़ा है तो परिणाम mod 10^9 + 7 लौटाएंइसलिए, यदि इनपुट इस तरह है000000010तो आउट

  1. - Python में कैसे जांचें कि A, B का सुपरक्लास है?

    हमारे पास क्लासेस A और B निम्न प्रकार से परिभाषित हैं: class A(object): pass class B(A): pass उदाहरण A को B का सुपर क्लास दो तरीकों से साबित किया जा सकता है: class A(object): pass class B(A): pass print(issubclass(B, A)) # यहां हम issubclass() मेथड का उपयोग करके चेक करते हैं कि B

  1. - पायथन में जांचें कि क्या स्ट्रिंग को फ्लोट में बदला जा सकता है

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