【问题标题】:Mathematical technique to check intersection检查交叉点的数学技术
【发布时间】:2010-01-22 14:27:01
【问题描述】:

想象有一个非常非常大的房间,呈空心立方体形状。在房间的固定离散位置,空中悬挂着魔法球。没有一个魔法球正好在它上面。如果我们取一个无限面积的假想水平面并穿过立方体,我们怎么能确定这个平面没有穿过任何一个魔法球呢?

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

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

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

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

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

【问题讨论】:

  • 平面是否穿过整个立方体? IE。它的面积大于立方体的水平面积?
  • 球是固定的,没有范围?所以你有一组整数点 (x,y,z),这样一个点 (a,b,c) 的存在意味着该集合不包含 d>c 的点 (a,b,d),对吧?并且您想找到一些 w 使得集合不包含以 w 作为最后一个坐标的点?大概,您可以预先排序或安排您的点集,然后想快速回答问题?但是您的下一个陈述似乎针对的是不同的东西:“......给定的 z 值是否可以由任何一对 (x,y)(位置)产生。”。
  • 如果不了解从 (x,y) 生成 z 的函数的更多信息,就不可能以比穷举搜索更好的方式确定在边界体积内达到的 z 的最大值。跨度>
  • 这个问题需要更多信息,对给定示例的实际解释将是一个好的开始。

标签: sequence intersection plane


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-11-05
    • 2020-07-16
    • 1970-01-01
    • 2012-10-08
    • 2020-04-29
    • 2021-01-31
    • 2010-09-27
    相关资源
    最近更新 更多