我想最大限度地提高托盘的材料数量,我可以在装运。我的材料托盘是三个不同类别之一:
材料类型1(易碎):可与另一个类型1的托盘一起堆放,
可堆放在2类物料的托盘上。
材料类型2(坚固):可与另一托盘
材料类型2,可堆放在材料类型1下面不能堆放在材料1上
材料类型3(非常易碎):不能堆放。
我需要计算多少托盘脚印或底部托盘需要为任何订单,如果我得到了一个材料清单托盘订购例如:1类物料10个托盘,2类物料20个托盘,3类物料3个托盘订单需要多少底部货盘?
编辑:我们把卡车底部货盘的数量限制为24个。可堆叠的最大托盘数是两个,也就是说,您最多只能将两个托盘堆叠在一起注意:材料2不能堆放在材料1的顶部。

最佳答案

考虑到目前的建筑,堆叠所需的脚印数量将是

t3 + ( 1 if t1 + t2 > 0, 0 otherwise )

其中,t1表示类型1的托盘数量,t2表示类型2的托盘数量,t3表示类型3的托盘数量类型3的托盘不能与其他任何东西一起堆放;如果存在类型1或类型2的托盘,则可以将它们一起堆放,首先是类型2的托盘,然后是类型1的托盘。
编辑
由于最多两个托盘可以堆叠在一起,每辆卡车最多可以装载24个托盘,答案是不同的。总堆栈数为
#Stacks = t3 + ceil( ( t1 + t2 ) / 2 )

其中ceil表示四舍五入到最接近的整数类型3的每个托盘必须单独堆叠,因此至少需要堆叠。类型1和类型2的剩余托盘最多可堆叠2个,显然没有实际限制;如果类型1和类型2单独进入一个堆叠,则没有问题,如果类型1和类型2都存在,则将类型2放在底部。
最后,需要的卡车总数是
#Trucks = ceil(#Stacks/24)

最后一辆卡车可能还有一些未使用的空间。

关于algorithm - 如何计算卡车负载中的最大托盘数?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33915082/

10-12 22:15