Python实现N阶随机矩阵主对角线下方元素求和功能求助
实现说明
主对角线元素的判定规则为:从矩阵左上角到右下角的元素,满足行索引 = 列索引(索引从0开始计数),因此主对角线下方元素满足行索引 > 列索引,遍历所有符合该条件的元素累加即可得到结果。
修正后的代码
1. suma_matriz函数实现
def suma_matriz(matriz): suma_total = 0 filas = len(matriz) # 遍历每一行 for f in range(filas): # 仅遍历当前行中列索引小于行索引的元素(即主对角线下方) for c in range(f): suma_total += matriz[f][c] return suma_total
2. 主程序调用修正
原代码主程序中调用suma_matriz时未传入参数,需要修改为:
total = suma_matriz(matriz)
完整可运行代码
import random def llenar_matriz(n): # 用1-99的随机数填充矩阵 matriz = [] for r in range(n): fila = [] for c in range(n): fila.append(random.randint(1,99)) matriz.append(fila) return matriz def imprimir_matriz(matriz): # 格式化打印矩阵 filas = len(matriz) columnas = len(matriz[0]) for f in range(filas): for c in range(columnas): print ("%3d" %matriz[f][c], end="") print() def suma_matriz(matriz): # 计算主对角线下方元素总和 suma_total = 0 filas = len(matriz) for f in range(filas): for c in range(f): suma_total += matriz[f][c] return suma_total # 主程序 lado = int(input("Ingrese el ancho de la matriz: ")) # 输入矩阵边长生成N×N矩阵 matriz = llenar_matriz(lado) imprimir_matriz(matriz) total = suma_matriz(matriz) print("La suma de los numeros debajo de la diagonal principal de la matriz es: ",total)
内容的提问来源于stack exchange,提问作者Gibbon
相关产品推荐
相关产品推荐

