【发布时间】:2015-08-26 18:23:37
【问题描述】:
我最近听到一个问题,它是切割棒问题的变体。
如果您有长度为 10 的杆,并且您从客户那里订购了各种尺寸的杆(即一个客户订购了一根长度为 4、另一个长度为 7、另一个长度为 6),那么您需要最小化多少根杆损失?
我一直在想办法解决这个问题,但我想不出一个令人信服的解决方案。
谢谢!
编辑:
给你一个包含所有订单的数组。例如, [4,8,9,1,4,3,7]。杆的长度为 10(因此每个订单必须小于 10)。
【问题讨论】:
我最近听到一个问题,它是切割棒问题的变体。
如果您有长度为 10 的杆,并且您从客户那里订购了各种尺寸的杆(即一个客户订购了一根长度为 4、另一个长度为 7、另一个长度为 6),那么您需要最小化多少根杆损失?
我一直在想办法解决这个问题,但我想不出一个令人信服的解决方案。
谢谢!
编辑:
给你一个包含所有订单的数组。例如, [4,8,9,1,4,3,7]。杆的长度为 10(因此每个订单必须小于 10)。
【问题讨论】:
除非我在问题中遗漏了一些关于“最小化损失”含义的细节,否则这个问题似乎与bin packing problem 的形式相同,这是 NP 难题。
似乎有一些动态编程解决方案可以解决这个问题,看似比蛮力更快,但仍然不是很令人印象深刻。从 Wikipedia 上可以看出,有相当快速、精确的算法可用(当然是非多项式的)。
【讨论】: