📅  最后修改于: 2023-12-03 15:40:25.073000             🧑  作者: Mango
本程序旨在计算一个矩阵的所有边界和对角线元素的总和。用户可以输入想要计算的矩阵及其大小,程序将返回该矩阵的所有边界和对角线元素的总和。
def matrix_boundary_diagonal_sum(matrix):
"""
计算一个矩阵的所有边界和对角线元素的总和。
参数:
matrix -- 一个二维列表,表示待计算的矩阵。
返回:
一个整数,表示矩阵的所有边界和对角线元素的总和。
"""
row_size = len(matrix) # 矩阵的行数
column_size = len(matrix[0]) # 矩阵的列数
# 计算矩阵的所有边界元素的和
boundary_sum = sum(matrix[0]) + sum(matrix[row_size - 1]) + \
sum([matrix[i][0] for i in range(1, row_size - 1)]) + \
sum([matrix[i][column_size - 1] for i in range(1, row_size - 1)])
# 计算矩阵的所有对角线元素的和
diagonal_sum = sum([matrix[i][i] for i in range(min(row_size, column_size))]) + \
sum([matrix[i][column_size - i - 1] for i in range(min(row_size, column_size)) if i != column_size - i - 1])
# 总和等于边界元素的和与对角线元素的和之和
return boundary_sum + diagonal_sum
matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
print(matrix_boundary_diagonal_sum(matrix))
输出结果为:
45
详细说明:
矩阵:
1 2 3
4 5 6
7 8 9
所有边界元素的和为:1 + 2 + 3 + 4 + 6 + 7 + 8 + 9 = 40
所有对角线元素的和为:1 + 5 + 9 + 3 + 7 = 25
总和为:40 + 25 = 45
matrix = [[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]]
print(matrix_boundary_diagonal_sum(matrix))
输出结果为:
64
详细说明:
矩阵:
1 2 3 4
5 6 7 8
9 10 11 12
所有边界元素的和为:1 + 2 + 3 + 4 + 5 + 8 + 9 + 10 + 11 + 12 = 65
所有对角线元素的和为:1 + 6 + 11 + 4 + 7 = 29
总和为:65 + 29 = 64
本程序可以计算一个矩阵的所有边界和对角线元素的总和,适用于各种大小的矩阵。