在CLRS中,棒料切割问题的递推解是:
rn=最大值(pn,r1+rn-1,…,rn-1+r1)
这种复发很明显,我理解。
然而,我在理解书中提供的这种重复出现的简单版本时遇到了困难,即:
rn=max1我不明白,这次复发和第一次复发有什么相似之处对我来说,第二次重复可能会错过最优解,因为我们没有考虑第一次削减的最优成本(我们只是取它的正常价格)。
我们不应该总是像第一个等式一样考虑双方的优化成本吗?
最佳答案
这就是理由。
最佳切割必须包括一定长度的工件。那件商品将以低于cc>的价格出售然后,你将把剩下的杆切成其他的部分,最好的办法就是把它切割得最好。
所以我们只需要在伤口里找到一块。递归将解决其余的问题。
这正是简单递归的作用。
关于algorithm - 动态编程棒料切割的更简单重复,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35027189/