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
广告