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-05-05 20:03:02 发布