0

我想最大限度地增加我可以在货物中发送的材料托盘数量。我的材料托盘是三个不同类别之一:

  • 材料类型 1(易碎):可与另一个类型 1 的托盘堆叠,可堆叠在材料类型 2 的托盘顶部。
  • 材料类型 2(坚​​固):可以与另一个材料类型 2 的托盘堆叠,可以堆叠在材料类型 1 的下方。不能堆叠在材料类型 1 的顶部
  • 材料类型 3(非常脆弱):不能堆叠。

如果给我一份订购的材料托盘清单,我需要计算任何订单需要多少托盘足迹或底部托盘。例如:10 个材料类型 1 的托盘和 20 个材料类型 2 的托盘和 3 个材料类型 3 的托盘。订单将占用多少个底部托盘?

编辑:让我们将卡车底部托盘的限制设置为 24。可堆叠的最大托盘是两个,也就是说,您不能将两个以上的托盘堆叠在一起。注意:材料 2 不能堆叠在材料 1 的顶部。

4

1 回答 1

2

鉴于当前的限制,堆叠所需的足迹数量将是

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

其中t1表示类型 1t2的托盘数量,表示类型 2 的托盘t3数量,表示类型 3 的托盘数量。类型 3 的托盘不能与其他任何东西堆叠在一起;如果存在类型 1 或类型 2 的托盘,它们可以堆叠在一起,首先是类型 2 的托盘,然后是类型 1 的托盘。

编辑

由于最多可以堆叠 2 个托盘,并且每辆卡车最多可以装载 24 个托盘,因此答案是不同的。总堆栈数为

#Stacks = t3 + ceil( ( t1 + t2 ) / 2 )

其中ceil表示四舍五入到最接近的整数。类型 3 的每个托盘必须单独堆叠,因此至少需要t3堆叠。其余类型 1 和类型 2 的托盘最多可以堆放 2 个高度,显然没有实际限制;如果类型 1 和类型 2 单独放在一个堆栈中,则没有问题,如果类型 1 和类型 2 都存在,则将类型 2 放在底部。

最后,所需的卡车总数为

#Trucks = ceil(#Stacks/24)

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

于 2015-11-25T11:26:39.593 回答