Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

โปรแกรมค้นหาเมทริกซ์ที่แถวและคอลัมน์มีผลรวมของแถวและคอลัมน์ด้านหลังใน Python


สมมติว่าเรามีเมทริกซ์ที่กำหนด เราต้องหาเมทริกซ์ res ใหม่ ซึ่งมีมิติเหมือนกับเมทริกซ์ที่กำหนด โดยที่แต่ละองค์ประกอบใน res[i, j] =ผลรวมขององค์ประกอบของเมทริกซ์[r, c] สำหรับแต่ละ r ≤ ผมและ c ≤ j.

ดังนั้นหากอินพุตเป็นแบบ

8 2
7 4

แล้วผลลัพธ์ที่ได้จะเป็น

8 10
15 21

เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -

  • หากเมทริกซ์ว่างเปล่า

    • ส่งคืนเมทริกซ์

  • R :=จำนวนแถวของเมทริกซ์

  • C :=จำนวนคอลัมน์ของเมทริกซ์

  • สำหรับ r ในช่วง 1 ถึง R - 1 ให้ทำ

    • สำหรับ c ในช่วง 0 ถึง C - 1 ทำ

      • เมทริกซ์[r, c] :=เมทริกซ์[r, c] + เมทริกซ์[r - 1, c]

  • สำหรับ r ในช่วง 0 ถึง R - 1 ให้ทำ

    • สำหรับ c ในช่วง 1 ถึง C - 1 ทำ

      • matrix[r, c] :=matrix[r, c] + matrix[r, c - 1]

  • ส่งคืนเมทริกซ์

ตัวอย่าง

ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น

def solve(matrix):
   if not matrix:
      return matrix

   R, C = len(matrix), len(matrix[0])
   for r in range(1, R):
         for c in range(C):
            matrix[r][c] += matrix[r - 1][c]

   for r in range(R):
      for c in range(1, C):
         matrix[r][c] += matrix[r][c - 1]

   return matrix

matrix = [
   [8, 2],
   [7, 4]
]
print(solve(matrix))

อินพุต

[[8, 2],[7, 4]]

ผลลัพธ์

[[8, 10], [15, 21]]