Python 计算矩阵左对角线之和

Python 计算矩阵左对角线之和

Python是一种流行的通用编程语言,可用于各种行业,从桌面应用程序到Web开发和机器学习。

其简单易懂的语法使得它非常适合初学者入门编程。在本文中,我们将看到如何使用Python计算“矩阵的左对角线元素之和”。

矩阵

在数学中,我们使用矩形排列或矩阵来描述数学对象或其属性,它是一个包含数字、符号或按行列排列的表达式的矩形数组或表。

示例

2 3 4 5
1 2 3 6
7 5 7 4

因此,这是一个有3行4列的矩阵,表示为3*4的矩阵。

  • 矩阵中有两条对角线,分别是主对角线和副对角线。

  • 主对角线是从左上角到右下角的对角线,副对角线是从左下角到右上角的对角线。

根据给定的例子 –

2 3        a00 a01
1 2        a10 a11

这里有一个主对角线 a00 和 a11,还有一个次矩阵 a10 和 a01。

矩阵的左对角线之和

现在我们已经复习了基本知识,对矩阵和对角线有了深入的理解,让我们深入探讨这个主题,并用编码来完成。

为了计算和,我们取一个二维矩阵。考虑一个4*4的矩阵,元素如下 –

2 4 6 8       a00 a01 a02 a03
3 5 7 9       a10 a11 a12 a13
1 4 6 7       a20 a21 a22 a23
3 5 1 4       a30 a31 a32 a33
  • Here, a00, a11, a22, a33 是主要矩阵或者主要矩阵,任务完成前需要满足条件。让我们来了解两个对角线的条件。

  • 对于从矩阵中取出主对角线上元素的和,它应满足行列条件,即求元素之和时,需要满足元素的行数 = 列数。

  • 对于次对角线上的元素 a03, a12, a21, a30 ,行列条件将是行数-列数-1。

使用For循环

在这种方法中,我们将使用两个循环,一个用于遍历行和列,一个用于检查我们提供的条件。

步骤

  • 给定一个值MAX。

  • 为矩阵定义一个函数。

  • 使用for循环循环遍历数字。

  • 提供矩阵左对角线的条件。

  • 打印值。

示例

以下示例计算了4 x 4矩阵中左对角线元素的和。循环遍历矩阵的每一行和列,如果它们相等(即在左对角线上),则将该元素添加到名为”leftmatrix”的变量中。

max = 50
def sumleftmatrix(matrix, m):
   leftmatrix = 0
   for i in range(0, m):
      for j in range(0, m):
         if (i == j):
            leftmatrix += matrix[i][j]
   print("Sum of left diagonal of the matrix:", leftmatrix)
A = [[ 10, 22, 13, 84 ],
   [ 52, 63, 97, 82 ],
   [ 11, 32, 23, 14 ],
   [ 55, 63, 72, 83 ]]
sumleftmatrix(A, 4)

输出

在这个方法中,我们只是定义了一个函数,并使用for循环创建了一个范围,用于遍历行和列。添加左对角线中存在的元素的条件。

时间复杂度 - O(N * N),因为我们使用嵌套循环检查N * N次。

由于我们没有使用任何额外的空间,辅助空间复杂度为O(1)。

Sum of left diagonal of the matrix: 179

使用单个循环

可以使用单个循环计算主对角线和次对角线的和。

步骤

  • 给一个名为MAX的值。

  • 为矩阵定义一个函数。

  • 使用for循环迭代数字。

  • 为矩阵的左对角线提供条件。

  • 打印该值。

示例

以下示例定义了一个名为sumofleftdiagonal的函数,它接受两个参数,矩阵和m。

  • 第一个参数matrix是一个二维数字数组,而第二个参数m表示二维数组的大小。

  • 在此函数中,有一个名为left_diagonal的变量,用于存储矩阵左对角线上所有元素的和。

  • 然后使用for循环遍历范围在0到m(大小)之间的每个元素,并将这些值累加到left_diagonal中。

  • 最后,一个输出语句打印出“Sum of Left Diagonal is:”以及left_diagonal中存储的值。给出了一个将MAX设置为50且T为另一个4×4数组的示例案例。

MAX = 50
def sumofleftdiagonal (matrix, m):
   left_diagonal = 0
   for i in range(0, m):
      left_diagonal += matrix[i][i]
   print("Sum of Left Diagonal is:", left_diagonal)
T = [[ 11, 12, 33, 24 ],
   [ 54, 69, 72, 84 ],
   [ 14, 22, 63, 34 ],
   [ 53, 64, 79, 83 ]]
sumofleftdiagonal (T, 4)

输出

时间复杂度为O(N),需要循环遍历N个元素。由于不消耗额外的空间,辅助空间复杂度为O(1)。

Sum of Left Diagonal is: 226

结论

在本文中,我们简要讨论了使用Python程序计算矩阵左对角线总和的两种简单方法。第一种方法使用了两个循环来完成我们提供的任务,而第二种方法提供了一种更高效的完成相同任务的方法,并且路径更短。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程