我想最大限度地增加我在一次装运中可以发送的材料托盘的数量。我的托盘材料是三个不同的类别之一:
我需要计算多少托盘脚印或底部托盘是需要为任何订单,如果我得到一个清单的材料托盘被订购。例如:10个托盘的材料类型1和20个托盘的材料类型2和3个托盘的材料类型3。该订单将采取多少底部托盘?
编辑:让我们把卡车底部托盘的限制设置为24。最大的托盘可堆叠为两个,也就是说,你不能堆叠超过两个托盘在彼此之上。注意:材料2不能堆放在材料1的顶部。
发布于 2015-11-25 11:26:39
在目前的情况下,堆叠所需的脚印数目是
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类型的托盘必须单独堆放,因此至少需要t3堆栈。第1型和第2型的其余托盘最多可按2层高度排列,显然没有实际限制;如果1型和2型单独进入一个堆栈,就没有问题,如果1型和2型都存在,就把类型2放在底部。
最后,所需的卡车总数将是
#Trucks = ceil(#Stacks/24)最后一辆卡车可能还有一些未使用的空间。
https://stackoverflow.com/questions/33915082
复制相似问题