我试图找出矩阵中对角线元素的总和。在此,n是方矩阵的大小,a是矩阵。有人可以向我解释一下这是怎么回事。
n = 3
a = [[11,2,4],[4,5,6],[10,8,-12]]
sum_first_diagonal = sum(a[i][i] for i in range(n))
sum_second_diagonal = sum(a[n-i-1][n-i-1] for i in range(n))
print(str(sum_first_diagonal)+" "+str(sum_first_diagonal))
尝试以下方法求和第二对角线:
sum(a[i][n-i-1] for i in range(n))
内部循环访问以下条目:
>>> n = 3
>>> [(i, n-i-1) for i in range(n)]
[(0, 2), (1, 1), (2, 0)]
样本矩阵的对角线总和为:
>>> n = 3
>>> sum(a[i][n-i-1] for i in range(n))
19
您的代码中的错误是对两个维度使用相同的表达式:
a[n-i-1][n-i-1]
这将再次以相反的顺序处理第一个对角线,[(2, 2), (1, 1), (0, 0)]
使您两次获得相同的总和。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句