以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  实际工作中遇到逻辑规律性问题,求助全体人员帮忙  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=70229)

--  作者:ljh29206
--  发布时间:2015/6/17 15:50:00
--  实际工作中遇到逻辑规律性问题,求助全体人员帮忙

我有   2种货物

 

分别:  长100cm.*宽100cm*高33cm

           长100cm.*宽100cm*高22cm

 

我要把 这2种货物(总数量少于15个) 拼合在 一个。 

 

 长200cm.*宽200cm 

(1个底层 放置4箱货,  33,22 不同高度箱体 可以 堆叠在一起)

的托盘上。

 

 

需要  把 这些东西构成 一个平面,不足平面的部分用空箱填补。 

 

请问 如何 计算  空箱的填补数量

 

空箱的规格有以下3种

           长100cm.*宽100cm*高33cm

           长100cm.*宽100cm*高22cm

           长100cm.*宽100cm*高11cm

 

 

想了很久,没知道如何计算公式。。。。。。。

 

 

 


--  作者:大红袍
--  发布时间:2015/6/17 18:12:00
--  

 呃,本来觉得是挺简单的事情,后来想复杂了图片点击可在新窗口打开查看

 

 扩展开去,是一个很难的问题,时间问题,最后只能用取巧的方法处理....

 

 如果列举所有的可能性,耗时耗力,偷懒用随机的方式做,多运行几次就能得到答案了

 

 红色代码自己改

 

\'随机叠箱子
Dim cm33 As Integer = 9
Dim cm22 As Integer = 5

Dim arys(cm33+cm22-1) As Integer
For i As Integer = 0 To cm33-1
    arys(i) = 33
Next
For i As Integer = cm33 To cm33+cm22-1
    arys(i) = 22
Next

Dim min As Integer = 99999
Dim answer As String = ""
For i As Integer = 1 To 100 \'随机100次结果
    Dim sum(3) As Integer
    For j As Integer = 1 To 20 \'打乱数组20次
        Dim r1 As Integer = Rand.Next(arys.length-1)
        Dim r2 As Integer = Rand.Next(arys.length-1)
        Dim temp As Integer = arys(r1)
        arys(r1) = arys(r2)
        arys(r2) = temp
    Next
    Dim str As String = ""
    For k As Integer = 0 To arys.length - 1
        Dim idx As Integer = k Mod 4
        sum(idx) += arys(k)
        str &= arys(k) & ","
    Next
    Dim max As Integer = sum(0)
    For k As Integer = 1 To sum.length - 1
        If sum(k) > max Then max = sum(k)
    Next
    Dim diff As Integer = max-sum(0)+max-sum(1)+max-sum(2)+max-sum(3)
    output.show(str.trim(",") & " 各边:" & cstr(sum(0)) & " " & sum(1) & " " & sum(2) & " " & sum(3) & " 相差:" & diff)
    If diff < min Then
        min = diff
        answer = str.trim(",") & " 各边:" & cstr(sum(0)) & " " & sum(1) & " " & sum(2) & " " & sum(3) & " 相差:" & diff
    End If
Next

msgbox(answer)


--  作者:don
--  发布时间:2015/6/17 18:30:00
--  
確實很難!如規格不統一就更難了
--  作者:ljh29206
--  发布时间:2015/6/18 9:39:00
--  

非常感谢版主的帮忙,

 

这个不是 foxtable的 语音问题

 

但版主能这么热心 ,太谢谢了

 

我测试一下先!