Python程序计算矩阵左对角线之和

python程序计算矩阵左对角线之和

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

其简单的语法使其成为初学者开始编码的理想选择。在本文中,我们将了解如何使用 Python 来计算“矩阵中左对角线元素的总和”。

矩阵

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

示例

2 3 4 51 2 3 67 5 7 4

登录后复制

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

立即学习“Python免费学习笔记(深入)”;

矩阵中有两条对角线,即主对角线和次对角线。

主对角线是指从左上角到右下角的对角线,次对角线是从左下角到右上角的对角线。

从给出的例子 –

2 3        a00 a011 2        a10 a11

登录后复制

这里 a00、a11 都是主对角线,a10、a01 是主对角线二级矩阵。

矩阵左对角线之和

现在我们已经回顾了基础知识并对矩阵和对角线有了透彻的了解,让我们更深入地研究这个主题并完成编码方面的工作。

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

2 4 6 8       a00 a01 a02 a033 5 7 9       a10 a11 a12 a131 4 6 7       a20 a21 a22 a233 5 1 4       a30 a31 a32 a33

登录后复制

这里,a00,a11,a22,a33是初级或主要矩阵,完成任务之前有一个条件。让我们了解两条对角线的条件。

为了取出矩阵主对角线中存在的元素之和,它应该满足行列条件,该条件指定对于元素之和,它应该具有元素为行=列。

现在对于次对角线,对于元素a03、a12、a21、a30,行列条件将为行数-列数-1。

使用 For 循环

在此方法中,我们将使用两个循环来实现此目的,即用于行和列的循环,以及用于检查我们提供的条件的内部循环。

算法

给出一个 MAX 值。

定义矩阵的函数。

使用 for 循环迭代数字。

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

打印该值。

示例

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

max = 50def 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 的函数,它接受两个参数:matrix 和 m。

第一个参数 Matrix 是一个二维数组,第二个参数 m 表示二维数组的大小。

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

然后,for 循环遍历 0 到 m(大小)范围内的每个元素,并将这些值相加到 left_diagonal 中。

最后,输出语句打印出“Sum of Left Diagonal is:”,后面跟着存储在left_diagonal中的内容。给出了 MAX 设置为 50 且 T 为另一个 4×4 数组的示例

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

以上就是Python程序计算矩阵左对角线之和的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2223394.html

(0)
上一篇 2025年2月26日 10:30:58
下一篇 2025年2月26日 10:31:13

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • 为什么在Python中list.sort()不会返回已排序的列表?

    示例 在这个例子中,我们先看看 list.sort() 的用法,然后再继续。在这里,我们创建了一个列表并使用 sort() 方法按升序排序 – # Creating a ListmyList = [“Jacob”, “Harry…

    2025年2月26日
    200
  • python中sort()函数用法详解

    python中sort()函数用法是对列表进行排序的函数,可以按照升序或降序对列表中的元素进行排序。语法是“list.sort(key=None, reverse=False)”。key:指定用于排序的比较函数,默认值为None,表示使用默…

    2025年2月26日
    200
  • 为什么Python允许在列表和元组的末尾使用逗号?

    Python 允许在列表和元组末尾使用逗号。它是可选的,使项目更具可读性,并且您可以重新排序项目而不会出现任何错误。如果您在末尾添加逗号,则无需一次又一次记住在每个项目后添加尾随逗号。 让我们看一些例子 – 列表 示例 在这个例…

    2025年2月26日
    200
  • 如何在Python中获取整数的符号?

    简介 Python 整数是主要数据类型之一,用于几乎所有主要的数学和逻辑运算。在Python中,整数是零、正整数或负整数,没有小数部分,并且具有无限的精度。它们可以用二进制、八进制和十六进制值表示。在本文中,我们将学习如何获取整数的符号。 …

    2025年2月26日
    200
  • 如何使用Python实现马尔可夫链算法?

    如何使用Python实现马尔可夫链算法? 马尔可夫链是一种用来描述随机演化过程的数学模型。在自然语言处理、机器学习等领域,马尔可夫链被广泛应用于文本生成、语言模型等任务。本文将介绍如何使用Python实现马尔可夫链算法,并给出具体的代码示例…

    2025年2月26日
    200
  • 如何使用Python实现朴素贝叶斯算法?

    如何使用Python实现朴素贝叶斯算法? 导语:朴素贝叶斯算法是一种基于概率理论的分类算法,在文本分类、垃圾邮件过滤、情感分析等领域有广泛应用。本文将简要介绍朴素贝叶斯算法的原理,并给出使用Python实现朴素贝叶斯算法的代码示例。 一、朴…

    2025年2月26日
    200
  • 如何利用Python编写希尔排序算法?

    如何利用Python编写希尔排序算法? 希尔排序(Shell Sort)是一种改进的插入排序算法,它通过比较相距一定间隔的元素来移动元素,从而减少了移动的次数。希尔排序的核心思想是将待排序的元素按照一定的间隔分组,然后对每个分组进行插入排序…

    2025年2月26日
    200
  • 如何使用Python实现广度优先搜索算法?

    如何使用Python实现广度优先搜索算法? 广度优先搜索(BFS)是一种基本的图搜索算法,用于在图或树中寻找特定节点(或状态)的最短路径。它可以被广泛应用于许多领域,如寻找社交网络中最短的朋友关系链、迷宫问题的解决等。Python提供了强大…

    2025年2月26日
    200
  • 如何用Python编写Tarjan算法?

    如何用Python编写Tarjan算法? Tarjan算法是一种基于深度优先搜索(DFS)的图算法,用于求解强连通分量(SCC)问题。本文将介绍如何用Python编写Tarjan算法,并附上具体的代码示例。 Tarjan算法的基本思想是通过…

    2025年2月26日
    200
  • 如何用Python实现快速排序算法?

    如何用Python实现快速排序算法? 快速排序是一种常见而高效的排序算法,它能够在平均情况下以O(n log n)的时间复杂度对一个包含n个元素的列表进行排序。本文将介绍如何使用Python编写快速排序算法的代码示例。 快速排序的基本思想是…

    2025年2月26日
    200

发表回复

登录后才能评论