Python程式:求矩陣對角線之和
假設我們有一個方陣;我們需要找到矩陣對角線的和。因此,只包括主對角線和次對角線上所有元素的和,忽略交叉元素。
例如,輸入為:
| 10 | 5 | 9 | 6 |
| 8 | 15 | 3 | 2 |
| 3 | 8 | 12 | 3 |
| 2 | 11 | 7 | 3 |
則輸出將是:主對角線元素為[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
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP