【发布时间】:2020-09-26 13:59:04
【问题描述】:
您的工作是将n 对象装入盒子中。每个盒子可以有一件或两件物品,盒子里物品的总重量最大可以是x。最少要装几箱?
我无法弄清楚这里的问题是背包还是其他东西......
对于我有的普通背包
def knapsack(x, wt, values, n):
if n == 0 or x == 0 :
return 0
if (wt[n-1] > x):
return knapsack(x, wt, values, n-1)
else:
return max(val[n-1] + knapsack(x-wt[n-1], wt, val, n-1), knapsack(x, wt, val, n-1))
但我不确定如何修改它?此外,我似乎在这里寻找最小值而不是最大值。这也可能是子集和的一些变体吗?
【问题讨论】:
标签: python algorithm dynamic-programming heuristics