鱼C论坛

 找回密码
 立即注册
查看: 1824|回复: 1

[已解决]求助

[复制链接]
发表于 2023-4-12 18:01:28 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
# -*- coding: utf-8 -*-
'''
函数代码请只在 "
##########start 下面可以改动

##########end 上面可以改动 "

中间部分作答,作答行数自由调整


题目:已知一个3*3矩阵A,A的元素依次为1-9的平方
  |1^2 2^2 3^2|
A=|4^2 5^2 6^2|,求该矩阵主对角线元素之和。
  |7^2 8^2 9^2|
程序分析:利用双重for循环控制输入二维数组,再将a[i][i]累加后输出。  
'''



def TEST_DO_NOT_CHANGE():
    rlt_sum=0
    A = [[1**2, 2**2, 3**2],
         [4**2, 5**2, 6**2],
         [7**2, 8**2, 9**2],
         ]
    ##########start下面可以改动




    ##########end 上面可以改动 "  
    return rlt_sum

   
if __name__ == "__main__":
    print (TEST_DO_NOT_CHANGE())
    #######下面可以添加测试语句
   
有没有简单的函数 我是新手 不会二维数组计算
最佳答案
2023-4-12 18:03:03
当然可以简化,针对这个特定问题,我们可以直接计算主对角线元素之和,而不需要使用双重循环。

请参考以下代码:
# -*- coding: utf-8 -*-

def diagonal_sum():
    A = [
        [1 ** 2, 2 ** 2, 3 ** 2],
        [4 ** 2, 5 ** 2, 6 ** 2],
        [7 ** 2, 8 ** 2, 9 ** 2]
    ]
    
    # 只需计算主对角线元素之和
    rlt_sum = A[0][0] + A[1][1] + A[2][2]
    return rlt_sum

if __name__ == "__main__":
    print(diagonal_sum())

这里我们直接计算了主对角线上的元素之和,而无需使用嵌套循环。这样的代码对于新手来说更易理解。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-4-12 18:03:03 | 显示全部楼层    本楼为最佳答案   
当然可以简化,针对这个特定问题,我们可以直接计算主对角线元素之和,而不需要使用双重循环。

请参考以下代码:
# -*- coding: utf-8 -*-

def diagonal_sum():
    A = [
        [1 ** 2, 2 ** 2, 3 ** 2],
        [4 ** 2, 5 ** 2, 6 ** 2],
        [7 ** 2, 8 ** 2, 9 ** 2]
    ]
    
    # 只需计算主对角线元素之和
    rlt_sum = A[0][0] + A[1][1] + A[2][2]
    return rlt_sum

if __name__ == "__main__":
    print(diagonal_sum())

这里我们直接计算了主对角线上的元素之和,而无需使用嵌套循环。这样的代码对于新手来说更易理解。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-23 19:27

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表