我有一个背包问题,指定背包容量的重量和重量计数。
我需要一种算法,当背包容量为C时,将权重打包到背包,所需权重计数为N且存在权重列表。权重排序无关紧要。算法是递归的最好。
例如:
我有背包女巫只能举行3个重量,他们必须重10,我有这些重量:9,8,7,2,1。正确(和唯一)的答案是7,2,1。
最好是有人写伪代码,但如果有任何常见的编程语言则可以。
P.S。任何提示也受到赞赏:)
[编辑]我需要一种算法,它能够准确地给出N个权重计数的答案,这些权重完全是C。
答案 0 :(得分:1)
这是0-1背包问题,可以使用伪plynomial时间的动态编程来解决。
有关如何使用动态编程解决问题的说明,请参阅Wikipedia's knapsack problem article。
请参阅these CS lecture slides了解演练和伪代码。
答案 1 :(得分:0)
http://en.wikipedia.org/wiki/Knapsack_problem应该可以帮到你。他们也有算法的伪代码。