Python程式:求矩陣對角線之和


假設我們有一個方陣;我們需要找到矩陣對角線的和。因此,只包括主對角線和次對角線上所有元素的和,忽略交叉元素。

例如,輸入為:

10596
81532
38123
21173

則輸出將是:主對角線元素為[10,15,12,3],和為40;次對角線元素為[6,3,8,2],和為19;因此總和為59。

為了解決這個問題,我們將遵循以下步驟:

  • m := 矩陣的行數

  • 如果m等於1,則

    • 返回matrix[0, 0]

  • count := 0

  • 對於 i 從0到m-1,執行:

    • count := count + matrix[i, i]

    • count := count + matrix[i, (-1 - i)]

  • 如果m是奇數,則

    • ind := m/2 的商

    • count := count - matrix[ind, ind]

  • 返回count

示例 (Python)

讓我們來看下面的實現來更好地理解:

 線上演示

def solve(matrix):
   m = len(matrix)
   if m == 1: return matrix[0][0]

   count = 0
   for i in range(m):
      count += matrix[i][i]
      count += matrix[i][-1 - i]

   if m % 2 == 1: count -= matrix[m // 2][m // 2]

   return count

matrix = [[10,5,9,6],[8,15,3,2],[3,8,12,3],[2,11,7,3],]
print(solve(matrix))

輸入

[[10,5,9,6],[8,15,3,2],[3,8,12,3],[2,11,7,3]]

輸出

59

更新於:2021年5月17日

9K+ 次瀏覽

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.