Computer >> Máy Tính >  >> Lập trình >> Python

Chương trình tìm ma trận mà các hàng và cột chứa tổng của các hàng và cột đằng sau trong Python

Giả sử chúng ta có một ma trận đã cho, Chúng ta phải tìm một ma trận mới res, có thứ nguyên giống với ma trận đã cho, trong đó mỗi phần tử trong res [i, j] =tổng các phần tử của ma trận [r, c] với mỗi r ≤ i, và c ≤ j.

Vì vậy, nếu đầu vào giống như

8 2
7 4

thì đầu ra sẽ là

8 10
15 21

Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -

  • nếu ma trận trống, thì

    • ma trận trả về

  • R:=số hàng của ma trận

  • C:=số cột của ma trận

  • đối với r trong phạm vi 1 đến R - 1, thực hiện

    • đối với c trong phạm vi 0 đến C - 1, thực hiện

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

  • đối với r trong phạm vi 0 đến R - 1, thực hiện

    • đối với c trong phạm vi từ 1 đến C - 1, thực hiện

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

  • ma trận trả về

Ví dụ

Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn

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))

Đầu vào

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

Đầu ra

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