我正在寻找用Java开发一种方法的想法,以计算平面上可以进行长距离通信的最大点数,并用“D”表示,每个点都被视为一个对象有两个坐标,“X”和“Y”表示为 2 个整数。
我发现,如果我选择平面上的任何一个点,就可以确定围绕所选点的圆的半径“D”,其中该半径内包含的所有中点都可以与目标点通信.
我的问题: 在 Java 中存在更好的方法吗?
如果您有任何建议或想法,我们将不胜感激。
最佳答案
我可能没有完全理解您的问题,但这是我对如何找到网格上距您所选点 D 距离内的所有点的看法。
可能有一种更快的方法,但这就是我突然想到的。基本的暴力方法是到达每个点并使用距离公式来检查它是否可以与您选择的点进行通信。您可以通过限制需要检查的点来改进这一点。
如果您选择的点是 (10, 10) 并且 D = 5,则没有理由检查 (0, 0) 等点,因为它显然太远了。因此,您可以将检查的点限制在边长为 D*2 的简单正方形中。
例如,如果您选择的点是 (10, 10) 且 D = 5,则每个潜在的可传播点都在角为 (5, 5)、(5, 15)、(15, 5)、( 15, 5).
关于java - 平面上的一组点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53148293/