import random cols=10 rows=10 matrix = [[random.randint(1,20) for col in range(cols)] for row in range(rows)] d=[[0 for col in range(cols)] for row in range(rows)] f=[[4 for col in range(cols)] for row in range(rows)] d[rows-1]=matrix[rows-1] for i in range(rows-2,-1,-1): for j in range(i+1): if d[i+1][j]>d[i+1][j+1]: d[i][j]=matrix[i][j]+d[i+1][j] f[i][j]=0 else: d[i][j]=matrix[i][j]+d[i+1][j+1] f[i][j]=1 for i in range(rows): for j in range(i+1): print(matrix[i][j],',',end='') print() for i in range(rows): for j in range(i+1): print(d[i][j],',',end='') print() print(d[0][0]) for i in range(rows): for j in range(i+1): print(f[i][j],',',end='') print('')
运行结果分别是: 原始数据,决策矩阵,最大值,路径(0向下,1右下)
15 , 7 ,7 , 8 ,1 ,9 , 17 ,5 ,9 ,18 , 9 ,1 ,14 ,12 ,16 , 12 ,9 ,4 ,20 ,9 ,4 , 19 ,16 ,13 ,17 ,3 ,14 ,14 , 10 ,12 ,2 ,2 ,15 ,7 ,19 ,7 , 16 ,16 ,9 ,17 ,15 ,16 ,7 ,14 ,17 , 9 ,13 ,7 ,4 ,12 ,15 ,2 ,19 ,4 ,4 , 144 , 117 ,129 , 110 ,107 ,122 , 98 ,102 ,106 ,113 , 81 ,68 ,97 ,95 ,91 , 72 ,66 ,67 ,83 ,75 ,70 , 60 ,57 ,45 ,63 ,49 ,66 ,66 , 39 ,41 ,31 ,32 ,46 ,38 ,52 ,40 , 29 ,29 ,16 ,29 ,30 ,31 ,26 ,33 ,21 , 9 ,13 ,7 ,4 ,12 ,15 ,2 ,19 ,4 ,4 , 144 1 , 0 ,1 , 1 ,1 ,1 , 0 ,1 ,0 ,0 , 0 ,1 ,1 ,0 ,0 , 0 ,0 ,1 ,0 ,1 ,1 , 1 ,0 ,1 ,1 ,0 ,1 ,0 , 1 ,0 ,1 ,1 ,1 ,0 ,1 ,0 , 1 ,0 ,0 ,1 ,1 ,0 ,1 ,0 ,1 , 4 ,4 ,4 ,4 ,4 ,4 ,4 ,4 ,4 ,4 ,