问题描述
有标准模块S个,双倍高模块D个,容器C个保持各容器中总高度平均,则:容器中总高度最大最小表达方式为?容器中标准模块个数最大最小表达方式为?容器中双倍高模块个数最大最小表达方式为?S>0D>=0C>0
解决方案
解决方案二:
去问小学上啊
解决方案三:
发错论坛了。
解决方案四:
典型的算法问题
解决方案五:
引用楼主jsnjhzj的回复:
有标准模块S个,双倍高模块D个,容器C个保持各容器中总高度平均,则:容器中总高度最大最小表达方式为?容器中标准模块个数最大最小表达方式为?容器中双倍高模块个数最大最小表达方式为?S>0D>=0C>0
问题没有表述清楚,而且条件没有明确问题1:容器中总高度最大最小表达方式为?什么叫容器中总高度?是什么的高度?是组合模块高度?普通的组合还是可以翻转组合?问题2:容器中标准模块个数最大最小表达方式为?这个是求模问题,为了简化问题,设定物品不可以翻转,并且模块和容器均为正方体,即边长都一样容器边长为Ac,标准模块边长为As。那么每条边能够容纳的最大模块数是Ac/As(这里的“/”只求商,不求余),那么最大容纳数为(Ac/As)^3.如果不是正方体,就单独计算各个边,变量长宽高分别为Ls,Ws,Hs,Lc,Wc,Hc。标准放置(模块长宽高对应容器长宽高):数量为(Lc/Ls)*(Wc/Ws)*(Hc/Hs)平面翻转放置(模块高对应容器高,但是模块长、宽均可对应容器长、宽之一):使用循环intDLl=Lc/Ls;//DivideCountainerLengthbyModellength,模块长边对齐容器长边的最大个数int[]com={模块长边对齐容器长边的个数,模块宽边对齐容器长边的个数,容器长边未利用长度}DLl循环自减直到0,计算DLl从最大到0中各情况的容器边长未利用长度,每次都和当前未利用长度值比对,有更小的值就替换,循环结束就得到容器长边上的最佳组合方式容器宽边同理计算,但是因为容器长边已经导致一定的不规则,所以要考虑的更加复杂。至此,本问题的翻转方案已经有了一定的复杂度,更不用说可以侧放的情况了。总之,这个问题是装箱问题,目前没有最佳算法,因为它属于数学界的NP问题——目前数学界七大世纪难题之首——你要是写出算法来,也别当程序员了,整个世界都为你癫狂,不需要量子计算机,轻松破解各大国信息安全部门的防线……问题3:容器中双倍高模块个数最大最小表达方式为?参考问题2,几乎无解,当然,你设定更多的限制条件就有可能求解:把问题2的Hs替换成2*Hs即可
解决方案六:
4楼掉炸了。。感觉好厉害
解决方案七:
显然这个问题只考虑高度,举例:标准高度为1,双倍高则为2;有5个容器,10个标准高度模块,6个双倍高模块;把这些模块放到5个容器中,显然是高度叠加,保持各容器中总高度平均(最大高度-最小高度的结果最小),则:容器中总高度最大最小表达方式为?容器中标准模块个数最大最小表达方式为?容器中双倍高模块个数最大最小表达方式为?
解决方案八:
容器有高度限制么?所有模块都要放进去么?可以有容器空着么?什么都不知道还解什么.
解决方案九:
容器有高度限制么?无所有模块都要放进去么?当然可以有容器空着么?可以
解决方案十:
那需要先执行个for循环(>0,<=C),看总高度能够被哪些数整除然后得到最大最小的数CMIN和CMAXCMIN对应最大高度,CMAX对应最小高度剩下的就是除法了...
解决方案十一:
题意不明解啥子?估计是专业人的专业术语,你不该来这里问