import numpy as np
# 背包问题
# 第一阶段:递归式求解
def package(capacity, index, weightList, valueList):
if capacity <= 0 or index < 0:
return 0
else:
if weightList[index] <= capacity:
return max(package(capacity, index - 1, weightList, valueList), valueList[index] + package(capacity - weightList[index], index - 1, weightList, valueList))
else:
return package(capacity, index - 1, weightList, valueList)
def findPackage1(capacity, weightList, valueList):
length = len(weightList)
if (length == 0):
return 0
return package(capacity, length - 1, weightList, valueList)
# 第二阶段:含记忆式搜索的递归式求解
def package2(capacity, index, weightList
Python背包问题动态规划算法
最新推荐文章于 2024-11-03 21:35:12 发布
本文详细介绍了如何使用Python编程实现动态规划算法来解决经典的背包问题。通过实例解析,展示了如何构造状态转移方程,逐步求解最优解,帮助读者深入理解动态规划在解决此类问题中的应用。

最低0.47元/天 解锁文章
1165

被折叠的 条评论
为什么被折叠?



