0

我正在构建一个 mySQL 表,列出 n 维中的点,每个维度都被索引。给定n维系统中的任何点,我希望能够按照它们与所选点的距离顺序输出所有其他点。

一个简单的解决方案是使用勾股定理计算到每个点的距离... sqrt(x^2+y^2)=z。我一直在寻找更有效的方法。只需要一个大概的顺序,所以我很开放。

谢谢。

-diddle

4

2 回答 2

1

这种事情的一种常用技术是考虑平方距离而不是消除平方根的实际距离,但是,如果我正确理解了这个问题,您不需要从索引中检索实际距离。在这种情况下,您可以只使用每个组件的绝对值之和。

于 2009-10-04T04:44:45.727 回答
0

除了给出的内容外,您还可以考虑“分箱”您的点 - 即(至少在精神上)在您的“地图”上绘制一个网格,并根据它们落入哪个方格来跟踪点。基本上,您从同一个方格中的点开始,然后是围绕所选点方格的“环”中的点,然后是下一个环向外,依此类推。根据您使用的网格大小,您可以根据需要将其设置为精确或近似。当然,2D 网格用于 2D 点——如果有更多维度,则必须增加网格的维度以匹配。

于 2009-10-04T05:18:40.787 回答