python学习之动态规划解决博物馆大盗问题
Posted 今夜月色很美
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python学习之动态规划解决博物馆大盗问题相关的知识,希望对你有一定的参考价值。
# 宝物的重量和价值
tr = [None, {'w': 2, 'v': 3}, {'w': 3, 'v': 4},
{'w': 4, 'v': 8}, {'w': 5, 'v': 8},
{'w': 9, 'v': 10}
]
max_w = 20
# 初始化二维表格m{(i, w)}
m = {(i, w): 0 for i in range(len(tr)) for w in range(max_w + 1)}
for i in range(1, len(tr)):
for w in range(1, max_w + 1):
if tr[i]['w'] > w:
m[(i,w)] = m[(i - 1, w)]
else:
m[(i,w)] = max(m[(i-1),w], tr[i]['v'] + m[(i - 1, w - tr[i]['w'])])
# 输出结果
print(m[(len(tr)-1, max_w)])
print(m)
以上是关于python学习之动态规划解决博物馆大盗问题的主要内容,如果未能解决你的问题,请参考以下文章