使用php填充bin

时间:2015-04-10 06:28:31

标签: php algorithm

我有三种尺寸包装:4,6和12.现在我们必须根据订单数量设置装货数量。 例如,我有16瓶葡萄酒。我需要放入4个4号的垃圾桶包装,并将12个尺寸放入12个垃圾桶包装中,并创建两个订单。

如何使用php解决这个问题?

1 个答案:

答案 0 :(得分:1)

我不知道php,所以我会把php-part留给别人(或者你自己,因为我相信如果你知道php,下面的内容很容易实现)。但是,我可以帮助计算。

如评论中所述,这是背包问题的一个简单示例。由于可用的盒子数量很少,这很容易解决。

显然,我们需要假设待分配的瓶子n是均匀的(否则对n+1瓶使用以下算法,并在任何一个盒子中留空一个槽。)

由于3*4 = 122*6 = 12可以在不使用12盒的情况下打包的最高数量的瓶子是14=2*4 + 1*6)。

如果您注意到14 mod 12 = 2可以填充的12个框的数量为

if (n mod 12 = 2)
then 12amount = n div 12 -1
else 12amount = n div 12

现在将rest= n - 12amount * 12)分发给其他类型的框:

if (rest mod 6 = 2)
then 6amount = rest div 6 - 1 
     4amount = 2
else 6amount = rest div 6
     4amount = (rest - 6amount*6)/4