给定2D平面上的点集合,我想找到彼此X
之内的Y
个点的集合。例如:
8|
7| a b
6|
5| c
4|
3| e
2| d
1|
-------------------------
1 2 3 4 5 6 7 8 9 0 1
a
,b
,c
和d
是2D平面上的点。给定参数3作为点数(X
),参数3作为距离(Y
),算法将返回[[a, b, c]]
。一些例子:
algorithm(X = 3, Y = 3) returns [[a, b, c]]
algorithm(X = 2, Y = 3) returns [[a, b, c], [d, e]] -- [a, b, c] contains at least two points
algorithm(X = 4, Y = 3) returns [] -- no group of 4 points close enough
algorithm(X = 5, Y = 15) returns [[a, b, c, d, e]]
约束:
我尝试过的事情:
答案 0 :(得分:1)
只有800点,您可能可以通过比较每对来构建图形,然后运行Bron--Kerbosch来找到最大的集团。这是该算法的合法脚本实现:https://github.com/SeregPie/almete.BronKerbosch