假设我们有一个平面,上面有一些点。我们还有一个给定半径的圆。
我需要一种算法来确定圆的位置,使其覆盖最大可能的点数。当然,这样的位置很多,所以算法应该返回其中一个。
精度并不重要,算法可能会犯一些小错误。
这是一个示例图片:
输入:
int n
(n<=50) – 点数;
float x[n]
和float y[n]
– 具有点 X 和 Y 坐标的数组;
float r
– 圆的半径。
输出:
float cx
和float cy
- 圆心坐标
算法的闪电速度不是必需的,但它不应该太慢(因为我知道一些针对这种情况的慢速解决方案)。
C++ 代码是首选,但不是强制性的。