数塔python

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 ,
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值