我被问到这是在我的一个课程中的脑筋急转弯,但无法弄清楚(这不是一个家庭作业问题,只是TA的一个让我们思考的传情) 。Python棒切割算法 - 变体
给你一个带有n个切点列表的棒,例如[1,5,11]和棒的总长度,例如20。你也被告知切割费用一根杆相当于杆的长度。我们希望在所有给定的切割中找到切割棒的最低成本,以及那些会导致最佳成本的切割顺序。
例如,切割长度为20的杆在位置5处,这将花费您$ 20时最终会与2个日志,一个长度为5和一个长度为15
或者在另一示例,如果你在位置5切割长度为25的棒,然后在位置10切割,那么在位置5切割它需要花费25美元,留下长度为5的棒和长度为20的棒,然后花费你20美元到在10号位切割它,让你在两个位置切割的总成本为45美元。但是,如果您在10号位置切断杆位,然后再位于5号位置,则需要花费25美元+ 10美元= 35美元。
最后,我们要return the minimum cost of cutting the rod at all the given cuts and the sequence of those cuts that would lead to the optimal cost.
我试图想出了这个问题的递归解决方案,但保留未来两手空空。思考?任何帮助表示赞赏。谢谢!
如果这是一个家庭作业的问题,你应该将其标记为这样的人会帮助你走向解决方案,只要你证明你已经尝试 – bcoughlan
@bcoughlan - 作业标记已被弃用。但是,关于展示企图代码的观点非常感谢。 – mgilson
我什至不能找出一个算法来做到这一点....更不用说一些代码 – user1530318