我有2个维度的大量点,以及两个距离,d
和D
。
我需要找到这些点的子集,例如:
该子集的每个成员与该子集的所有其他成员之间的距离小于d
。
该子集的每个成员距离不是该子集成员的所有点的距离都超过D
。
正如您所看到的,可能有几个子集,或者一个,甚至没有。
我有很多想法,但仍然无法让一个想法一直运行。
澄清:
点数可能是数百。 距离是整数 - 1,2,3 ... n
我的主要想法是:
让我们说你只有4分。
我认为首先要创建一个能够容纳所有点的结构,并且如果它们之间的距离低于d或高于D或者没有,则会告诉我们真/假。 即:
point1 point2 <d >D
a b true false
a c false true
a d false false
b c false false
b d true false
现在有了这些数据,我知道每个点都有一个同时具有两个谬误的行意味着它永远不会在一个集群中。
现在我们留下的点可能是群集, 我们将开始检查它们。
这是我停止的部分......