这是背包的一个简单版本,我难以绕过头。
在我的版本中,我不在乎这些物品的价值。我只想尽可能地接近称重能力,顺序无关紧要,因为我要多次这样做,并在中间进行改组。
因此请注意:我有一个值数组,例如:weights = [{44, 52, 100, 33, 33, 22, 25, 4, 6, 77, 88, 45}]
和容量,例如:capacity: 204
我希望数组值最接近该容量的组合而不重复任何容量,我在数学上不是很出色,而维基百科的文章完全让我迷失了。
有人可以解释如何获得这个吗?
天真的方法:循环遍历N个数字的所有子集,并检查权重之和。运行时间为O(2 ^ N * N)