集装箱算法(1)

 可以用货柜长宽分别交叉除以箱子的长宽后求整,用货柜的高除以箱子的高求整,计算如下:
40'HQ内尺寸: L*W*H=1200*235*268(CM)
1.先算出可以叠多少层.即用货柜高除以箱子高求整.
268 ÷ 27 = 9.925,==>说明可以叠9层.

2. 你的箱是长和宽是一样的,是正方形比较好算,长方形的话可以用下面交叉相除求整的方式来算.
1200 235
37 (1)32.43 (2)6.351 --->用37CM放在货柜的长和宽各的箱数.
37 (3)32.43 (4)6.351 --->用37CM放在货柜的长和宽各的箱数.

3. 求整后交叉相乘,取其数字比较大的乘积,再乘以可垒的层数9.
即(1)*(4)==>32*6=192
(2)*(3)==>32*6=192

192*9=1728箱.

得出一个货柜理论上可以装1,728箱.

当然,每箱之间都会有些空隙,每个外箱都不一定都做得符合尺地的.理论值能装,实际不一定能装.所以货柜的长的部分建议不要用32箱,用31箱,这样得出31*6*9=1,674箱.
第一次出货建议先做1674箱的资料,待实际装完后看能否在长的部分装32箱,后面再改.


PS:因为你的箱子是正方形,所以看不出装柜的差别,为了便于理解,做一个长方形的计算结果,如下:
(将一边37CM用40CM来算,其余不变)

1200 235
37 (1)32.43 (2)6.351
40 (3)30 (4)5.875

这里的1200 ÷ 40 =30, 刚好是个整数,我们要取29,因为不可能一点都不剩的装好.

同上面一样,交叉相乘:
(1) * (4 ) = 32 * 5 = 160
(2) * (3) = 6* 29 =174

所以,可以看出174是比较大的数,用174*9=1566
这样仓库人员在装货时,将箱子长度为40CM排在货柜的长,可以排29排.长度为37CM的一面横放在货柜内.

箱子高一般不变,因为有些货物是不能翻滚的.
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
贪心算法是一种常用的优化问题的方法,它通常用于在给定约束条件下寻找最优解。在集装箱问题中,贪心算法可以用来尽量利用集装箱空间,使得装载的物品数量最多。 集装箱问题通常有两个版本,一个是单一背包问题,即一个集装箱只能装载一个物品;另一个是多重背包问题,即一个集装箱可以装载多个物品。 下面是单一背包问题的贪心算法代码实现: ``` #include <iostream> #include <algorithm> using namespace std; struct Object { int w; // 物品重量 int v; // 物品价值 }; bool cmp(Object a, Object b) { return a.v > b.v; } int knapsack(int n, int c, Object obj[]) { sort(obj, obj + n, cmp); // 按照物品价值从大到小排序 int ans = 0; for (int i = 0; i < n; i++) { if (obj[i].w <= c) { // 如果物品能够全部装入背包 ans += obj[i].v; c -= obj[i].w; } else { // 如果物品不能全部装入背包 ans += obj[i].v * (double)c / obj[i].w; break; } } return ans; } int main() { int n, c; cin >> n >> c; Object obj[n]; for (int i = 0; i < n; i++) { cin >> obj[i].w >> obj[i].v; } cout << knapsack(n, c, obj) << endl; return 0; } ``` 上述代码实现了单一背包问题的贪心算法,通过对物品按照价值从大到小排序,每次选取价值最大的物品尽可能放入集装箱中。如果当前物品不能全部装入集装箱,则将部分物品按比例放入集装箱中。 如果需要解决多重背包问题,则需要对每个物品进行拆分,将其拆分成若干个重量较小的物品进行处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值