在 Python 中编写查找矩阵对角线和的程序

在 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:计数器

  • for i in range(0,m-1)做以下操作

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

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

  • 如果 m 是奇数,则

    • ind:= m/2 的商

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

  • 返回计数器

更多Python相关文章,请阅读:Python 教程

示例(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

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程