当前位置: 首页 > 知识库问答 >
问题:

复盖n个点的半径为r的最小圆数

阙庆
2023-03-14

一个圆覆盖一个点,如果该点位于圆内。如果一个点与圆心的距离小于或等于r,则该点位于圆内。

共有1个答案

厍书
2023-03-14

这可能不是最好的解决方案,但并试图优化它。

算法基于随机抽样:

  1. 在地图上生成N个圆
  2. 删除不覆盖任何点的所有圆
  3. 按覆盖点数递减排序
  4. foreach circle(排序)-将被circle覆盖的点标记为coved。如果圆圈未覆盖任何新点,请从列表中删除。

参数化:

  var POINTS_NUMBER = 30;
  var RADIUS = 50;
  var SAMPLE_COUNT = 400;

可能会向其添加一些优化(例如,某些圆圈可能会过早地从列表中排除)

编辑:

    null
    null
 类似资料:
  • 将求解第一个点的第一个圆放置在适当位置。 通过检查这两个点之间的距离是否小于2*r来求解最小圈数中的第二个点。并继续处理所有n个点。我认为是贪婪算法,但它是最优的,线性的吗?

  • 问题: 给定n个半径为r1的圆...rn和位置p1...pn。该算法必须找到包含所有n个圆的最小半径的圆的半径和圆心。圆的位置和半径是固定的,所以不能移动。 圆圈的结构可以看起来像这样: 输入值:[c1...cn] (c圈) 输出值:c 图像示例: 我的想法: 如果我找到最远的两点之间的距离并将圆心放在这条直线的一半上,我就可以画出包含n个圆的最小圆,但是有可能其他圆与主圆的圆心之间的距离比最远的

  • 我正在寻找一些解决方案,如果给定一组具有2D中心点和半径的圆,则在中返回一个最小子集,该子集完全覆盖具有2D中心点和半径的特定圆。最后一个圆圈不在中。 我已经选择了圆形,但如果我们把它们改成正方形、六边形等也没关系。

  • 在笛卡尔坐标中,我有一个知道高度h、宽度w和4个角(x, y)的矩形。如果我有一些值r,即圆的固定半径,如何计算将完全覆盖矩形的最小数量的圆的中心点?

  • 给定圆心、半径和3个点,我想通过指定开始绘制的角度和旋转的角度,绘制一条从第一个点开始、穿过第二个点并在第三个点结束的圆弧。为此,我需要计算圆弧上的点。我希望计算的点数是可变的,这样我就可以调整计算圆弧的精度,这意味着我可能需要一个循环,在计算完一个点后,通过旋转一点来计算每个点。我已经阅读了这个问题的答案,用2个点和圆心画圆弧,但它只解决了角度计算的问题,因为我不知道如何画画布。实现了“draw

  • 给定一组< code>n点< code>(a_1,b_1),< code>(a_2,b_2),...,< code>(a_n,b_n)。需要找到最小的< code>x,使得三个长度为< code>x的< code >轴平行正方形一起覆盖所有的点。 我可以找到包含所有点的最小面积的矩形。这个矩形可以以某种方式使用吗?或者任何关于如何处理这个问题的提示?