动态规划实战(二):背包问题
上一节中对动态规划有了一个初步的认识,现在通过更多的例子来加深印象,在网上搜索了一下关于动态规划的经典问题,其中第一个就是所谓“背包问题”,事实上它也很类似上一节中的钢条切割,稍有不同。
背包问题
给定一组物品,每种物品都有自己的重量和价格,在限定的总重量内,我们如何选择,才能使得物品的总价值最高。
不同于上节钢条切割的地方是,物品的重量不是连续的,所以事先并不能知道任意物品组成的总重会的集合。
为了便于编程实现,将问题具体化,比如使用上一节中的数据,重量价格表P:
重量: 2 3 4 5 6 7 8 9 10
价值: 5 8 9 10 17 17 20 24 30
但是上一节中我们的输入不能>10,在背包问题中,没有这种限制。