我有一大组二维点和两个距离d
, 和D
。
我需要找到点的子集,例如:
d
子集的每个成员与子集的所有其他成员的距离小于。子集的每个成员与不是子集成员的所有点的距离大于
D
。
如您所见,这些子集可能有几个,或者一个,甚至没有。
我有很多想法,但仍然无法将一个想法贯彻到底。
说明:
点数可能是数百个。距离是整数 - 1,2,3 ... n
我的主要想法是:
假设你只有 4 分。
我想首先创建一个结构来保存所有点对,如果它们之间的距离低于 d 或高于 D 或没有,它将告诉我们真/假。IE:
point1 point2 <d >D a b true false a c false true a d false false b c false false b d true false
现在有了这些数据,我知道每一个点都有一行有两个错误意味着它永远不会在一个集群中。
现在有了我们留下的可能用于集群的点,我们将开始检查它们。
这是我停止的部分...