可以使用具有指定数量的权重的背包问题

时间:2011-03-27 19:44:51

标签: recursion pseudocode knapsack-problem

我有一个背包问题,指定背包容量的重量和重量计数。

我需要一种算法,当背包容量为C时,将权重打包到背包,所需权重计数为N且存在权重列表。权重排序无关紧要。算法是递归的最好。

例如:
我有背包女巫只能举行3个重量,他们必须重10,我有这些重量:9,8,7,2,1。正确(和唯一)的答案是7,2,1。

最好是有人写伪代码,但如果有任何常见的编程语言则可以。

P.S。任何提示也受到赞赏:)

[编辑]我需要一种算法,它能够准确地给出N个权重计数的答案,这些权重完全是C。

2 个答案:

答案 0 :(得分:1)

这是0-1背包问题,可以使用伪plynomial时间的动态编程来解决。

有关如何使用动态编程解决问题的说明,请参阅Wikipedia's knapsack problem article

请参阅these CS lecture slides了解演练和伪代码。

答案 1 :(得分:0)

http://en.wikipedia.org/wiki/Knapsack_problem应该可以帮到你。他们也有算法的伪代码。