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