检查交叉口的数学技术

时间:2010-01-22 14:27:02

标签: sequence intersection plane

想象一下,有一个空心立方体形状的非常大的房间。在房间的固定离散位置悬挂着空气中的魔法球。没有魔法球正好在它上面。如果我们采用假想的无限区域水平面并穿过立方体,我们怎样才能确定飞机没有穿过任何魔法球?

魔球的高度是其位置(x和y)的函数。分布是这样的:一些球处于相同的高度,而其他球处于不同的高度。 让功能为
          z = axy + bx + cy
 其中a,b,c是正整数常数。 位置(x轴和y轴值)以及高度(z)是离散值(为简单起见,我们可以将它们视为正整数)。

如果球分布函数是z = 10xy + 8x + 4y,那么z值不可能是15或21.因此z = 15或z = 21的平面不会切割任何一个球!实际上,在这种情况下,任何具有高度(z =任何奇数)的平面都不会切穿球。值得注意的是,有一些高度为偶数的平面没有穿过球。

我们不想找到所有魔术球的高度,并将其与水平面的高度进行比较,因为这就像尝试所有可能的组合一样,即使在计算机上也需要很长时间。

我们的目标是找到一种快速方法,通过该方法我们可以判断任何一对(x,y)(位置)是否可以产生给定的z(高度)值。如果给定的z不能制作完成后,那个高度的飞机不能穿过任何球! 问题也类似于查找给定数字是否存在于由两个变量的函数产生的序列中。

如果你能给我任何解决这个问题的建议,那将是一个很大的帮助。谢谢。 (我已经尝试过进化计算,如GA,PSO,DE,SA等。该方法需要具有确定性。)

1 个答案:

答案 0 :(得分:0)

听起来你房间里有很多球。房间高度从z = A到z = B.你感兴趣的是是否有任何高度z。要做到这一点而不必遍历所有球,你需要首先假设范围A到B是空的并且遍历球,将该范围的部分标记为已满,直到它完全填满或没有球。在前一种情况下,没有飞机会满足,但你没有遍历所有的球来知道。在后一种情况下,你有z的范围,其中没有球,你可以使用它们轻松地检查多个平面,但是以迭代所有球的初始成本。