Welcome!
买书,书共有5种,不同种类的书的组合在一起,能够打折。打折方案如下:
本数 | 折扣 |
---|---|
2 | 5% |
3 | 10% |
4 | 20% |
5 | 25% |
给定书的总数,消费者可以自行搭配书的购买方案,求购买总额最低。
《BoP》书上给出了两种方案,一种是贪心算法,一种是动态规划。
贪心算法的方法不能得到证明是最优的,而动态规划方法正确性有保证。
设书本书为N
单纯的先配对5个,再配对4个。。。这方法不能最优。
注意到若N = 8,则容易考虑到两种较优的方案5 + 3 和4 + 4 $$5 + 3 \rightarrow 5 \times 0.25 + 3 \times 0.1 = 1.55$$ $$4 + 4 \rightarrow 4 \times 0.2 \times 2 = 1.6 $$
所以,需要将所有3个的与5个的进行转化,变成两个4个的。即:\( 5 + 3 \rightarrow 4 + 4\)
复杂度低,但无法证明。
设某状态,第i本书为\(N_i\)
则最优的价钱可表示为:
由于书本数与书本序号无关,故表示为:
,其中:
每个\(X_{i} \)
都是由 求得。
由于从大到小依次减1,比任何其他减1的方法要小,如\(X_{i-3}\):
所以可以直接让: 其它状态类似。
具体解法参考书。