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程序计算矩阵左对角线总和的两种简单方法。第一种方法使用了两个循环来完成我们提供的任务,而第二种方法提供了一种更高效的完成相同任务的方法,并且路径更短。