关于货物物品横竖摆放的问题
貨車內(nèi)寬是2.4米。考慮到最多裝載,長寬130×100的貨品,應(yīng)該橫豎擺放。
橫豎擺放的數(shù)量如何自動計算呢?
采用數(shù)學(xué)公式,計算如下:
橫向擺放數(shù)=(int)(橫長+豎高)*數(shù)量/4/橫長
豎向擺放數(shù)=數(shù)量-橫向擺放數(shù)
結(jié)果如下:
| 橫長 | 130 | 160 | |||
| 豎寬 | 100 | 80 | |||
| 公式 | 橫向擺放數(shù)=(int)(橫長+豎高)*數(shù)量/4/橫長 | ||||
| 數(shù)量 | 橫向擺放 | 豎向擺放 | 橫向擺放 | 豎向擺放 | |
| 1 | 0.442308 | 1 | 0.375 | 1 | |
| 2 | 0.884615 | 2 | 0.75 | 2 | |
| 3 | 1.326923 | 2 | 1.125 | 2 | |
| 4 | 1.769231 | 3 | 1.5 | 3 | |
| 5 | 2.211538 | 3 | 1.875 | 4 | |
| 6 | 2.653846 | 4 | 2.25 | 4 | |
| 7 | 3.096154 | 4 | 2.625 | 5 | |
| 8 | 3.538462 | 5 | 3 | 5 | |
| 9 | 3.980769 | 6 | 3.375 | 6 | |
| 10 | 4.423077 | 6 | 3.75 | 7 | |
| 11 | 4.865385 | 7 | 4.125 | 7 | |
| 12 | 5.307692 | 7 | 4.5 | 8 | |
| 13 | 5.75 | 8 | 4.875 | 9 | |
| 14 | 6.192308 | 8 | 5.25 | 9 | |
| 15 | 6.634615 | 9 | 5.625 | 10 | |
| 16 | 7.076923 | 9 | 6 | 10 | |
| 17 | 7.519231 | 10 | 6.375 | 11 | |
| 18 | 7.961538 | 11 | 6.75 | 12 | |
| 19 | 8.403846 | 11 | 7.125 | 12 | |
| 20 | 8.846154 | 12 | 7.5 | 13 | |
非常不理想!!
困惑三天,想的解決方法如下(計算兩行貨物長度最小值):
? ? struct HangGeshu
? ? {
? ? ? ? public int hang1ge, hang2ge;
? ? }
? ? ? ?private HangGeshu getHengshuShuliang(int heng,int shu,int shuliang,Boolean youxianheng)
? ? ? ? {
? ? ? ? ? ? HangGeshu hangGeshu = new HangGeshu();
? ? ? ? ? ? if (shuliang > 1)
? ? ? ? ? ? {
? ? ? ? ? ? ? ? hangGeshu.hang1ge = shuliang / 2;
? ? ? ? ? ? ? ? if (youxianheng)
? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? hangGeshu.hang1ge++;
? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? else
? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? hangGeshu.hang1ge--;
? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? hangGeshu.hang2ge = shuliang - hangGeshu.hang1ge;
? ? ? ? ? ? ? ? //貨物橫豎擺放,目標(biāo)長度差值最小 (1 橫放 2 豎放)
? ? ? ? ? ? ? ? int cha0 = Math.Abs(hangGeshu.hang1ge * heng - hangGeshu.hang2ge * shu);
? ? ? ? ? ? ? ? int chaold = cha0;
? ? ? ? ? ? ? ? Boolean key = true;
? ? ? ? ? ? ? ? while (key)
? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? cha0 = Math.Abs((hangGeshu.hang1ge-1) * heng - (hangGeshu.hang2ge+1) * shu);
? ? ? ? ? ? ? ? ? ? if (cha0 < chaold)
? ? ? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? ? ? chaold = cha0;
? ? ? ? ? ? ? ? ? ? ? ? hangGeshu.hang1ge--;
? ? ? ? ? ? ? ? ? ? ? ? hangGeshu.hang2ge++;
? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? else
? ? ? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? ? ? key = false;
? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? key = true;
? ? ? ? ? ? ? ? while (key)
? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? cha0 = Math.Abs((hangGeshu.hang1ge + 1) * heng - (hangGeshu.hang2ge - 1) * shu);
? ? ? ? ? ? ? ? ? ? if (cha0 < chaold)
? ? ? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? ? ? chaold = cha0;
? ? ? ? ? ? ? ? ? ? ? ? hangGeshu.hang1ge++;
? ? ? ? ? ? ? ? ? ? ? ? hangGeshu.hang2ge--;
? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? else
? ? ? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? ? ? key = false;
? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? }
? ? ? ? ? ? }
? ? ? ? ? ? else
? ? ? ? ? ? {
? ? ? ? ? ? ? ? if (youxianheng)
? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? hangGeshu.hang1ge = 1;
? ? ? ? ? ? ? ? ? ? hangGeshu.hang2ge = 0;
? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? else
? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? hangGeshu.hang1ge = 0;
? ? ? ? ? ? ? ? ? ? hangGeshu.hang2ge = 1;
? ? ? ? ? ? ? ? }
? ? ? ? ? ? }
? ? ? ? ? ? return hangGeshu;
? ? ? ? }
?
總結(jié)
以上是生活随笔為你收集整理的关于货物物品横竖摆放的问题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Spring Security并没有那么
- 下一篇: 信号去噪,基于Sage-Husa自适应卡