我接受这个问题是我的家庭作业问题之一,而且我正在抓住它。我想要一些帮助:
切割的问题:Lp x Hp尺寸的矩形金属板具有n 孔,在整数坐标点。切割一块最大表面的板,没有孔,知道只允许与板切口的侧面平行。 注意:孔的坐标保留在两个矢量vx [i]中,用于横坐标孔 和vy [i]用于纵坐标(例如,这些向量不一定是排序的,整体能够以时间顺序存储)。最初的矩形,然后 切割过程中出现的矩形通过左下角的坐标存储 (x,y)按长度L和高度h(每个矩形通过一组4个变量识别:x,y,L,h,借助于其形成4个角坐标)。我们采用“分而治之”的技术。
我尝试过:
### [1,3] :vx (holes)
def cuts(x,y,L,h):
for i in range(nrg):
if vx[i] > x and vx[i] < x+L and vy[i] > y and vy[i] <y+h:
found = True
break
if found:
1: couts(x,y,L-vx[i],h)
2: cuts(vx[i],y,L-vx[i]+x,h)
3: cuts(L-vx[i],y,L-vx[i],h)
4: cuts(x,h-y,L,h-y)
else:
ar = L*h
if ar > arMax:
arMax = ar
nrg = 2
vx[1] = [1,3]
vx[2] = [2,3]
[x,y,L,h]
sol[0] = x
sol[1] = y
sol[2] = L
sol[3] = h