关于 二维平面装箱问题。。
毕业设计,导师给的一个题目。 给定一个大矩形,比如 50 X 100 。
然后 输入 一定的 小矩形 , 小矩形的大小不等。
然后 输出 小矩形能否放入到大矩形? 能或者不能。
大学选修的java课程,现在在一家外包企业实习。对算法这方面不是很熟悉。
像简单的,直接小矩形总面积比大矩形大之类非常容易判断的 能写出来。然后就不知道
怎么写了?
有没大神指定一二。或者,也有这方面正在学习的人一起探讨下。。
[解决办法]
1L错了,你试试看怎么把5*5的矩形放到1*100的矩形里面就知道了。
[解决办法]
排除法吧
首先小矩形面积和大于大矩形面积的肯定不行。
其次 考虑最大的小矩形的宽度(x或y)<= 最小的大矩形宽度(x/y)
第3步,到这里的话,就有可能能全部装进去。
下面就是做全排列测试了
不知道小矩形是否能90度旋转。不许旋转的话还要简单点。
[解决办法]
这个可以先算下小矩形的面积和大矩形的面积关系
如果小矩形面积和大于大矩形的面积当然是不能的
如果小的话就可能
这时候先添加些单位矩形,使2者相等
最后就可以转化成全覆盖问题了
[解决办法]
1维的都是NP完全的了, 何况二维.
要求最优解的话就遍历吧.