如何装盒子?

russilong 2007-05-30 03:54:56
一个长方体大盒子,尺寸为a*b*c作为容器。有若干体积相等的小盒子,尺寸为

d*e*f,将小盒子装入大盒子中。盒子不损坏,直到大盒子中不能再装入小盒子。问如

何装才能使大盒子中装最多的小盒子?如何装才能使大盒子中装入最少的小盒子?

请指教。最好给出大概实现思路。
...全文
327 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
longjing_g 2007-05-30
  • 打赏
  • 举报
回复
背包算法!!!!!!!!
楼主只要搜一下就行了
yydrewdrew 2007-05-30
  • 打赏
  • 举报
回复
原来是这么难的问题,初看还以为是脑筋急转弯
cmmouse 2007-05-30
  • 打赏
  • 举报
回复
还是劝楼主一句吧,这个问题比你想象的要复杂的多,因为没有必然的结果,甚至你程序正序倒序的变化都可能导致结果的不同。当然没有必然结果,实际上是因为你可能找不到足够优化的算法,使得你的程序能够在现存的任何一台机器上跑起来,包括银河这一类的。当然你要是降低问题的复杂程度还可以考虑,比如把现在的未知量都变成已知。
这种问题是典型的背包问题,属于线性优化中的NP完全问题,这一类问题至今都没有数学证明,只是给出了大量相似的数学问题,并被证明互相是等价的。
举个我知道的例子吧,类似jixingzhong(瞌睡虫·星辰)说的那个帖中集装箱的问题:一定数量的车,每天早上给超市送东西,再把另一些东西送回来。你要根据每次给出的不同超市数量,车的数量,物品的组成结构分析最省油的办法。
我同学做这个的时候,作了一个13个超市的分析,他在南开之星上跑了一个下午,这个貌似是现存国际上最好的,但仅仅是他的答案现在通用数据范本中最省油的,换一组数据就不是了。
ps:南开之星是南开大学的一个使用了800个Intel 3.06GHz处理器,运算峰值为每秒5万亿次计算机群,他当时申请了大概10%的资源。
dai_weitao 2007-05-30
  • 打赏
  • 举报
回复
太无聊了。。。。汗
yydrewdrew 2007-05-30
  • 打赏
  • 举报
回复
我觉得是把大盒子的长宽高轮流除以小盒子的长宽高,一共除3*3次,求余的体积大小,看哪种方案最大或者最小。
jixingzhong 2007-05-30
  • 打赏
  • 举报
回复
http://topic.csdn.net/t/20020313/11/572816.html

复杂度更高了一点,
楼主看看回复中的思路吧 ...
VCLIFE 2007-05-30
  • 打赏
  • 举报
回复
expect the best answer
eplanet 2007-05-30
  • 打赏
  • 举报
回复
感觉把大盒子的体积进行拆分,例如大盒子是8*8*8的话,那么2*2*2的体积就一定可以装满8*8*8,按照这样的思路,将原来的体积缩小。
然后在较小的体积内穷举。
很笨的方法哈:)

如果小的体积被装满,那么大体积一定也可以被装满,那么这个就是解了
如果小的体积装不满,这个方法就......嘿嘿。

这种东西不擅长.
星羽 2007-05-30
  • 打赏
  • 举报
回复
ding
cmmouse 2007-05-30
  • 打赏
  • 举报
回复
lz的问题。。。汗。。。
典型铺地砖的问题,不过你这个是三维的。。。
建议找一个拓扑论坛请教下先

65,187

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧