【发布时间】:2017-04-06 13:28:12
【问题描述】:
假设您有一个以 0,0 为中心、半径为 r 的圆。
我想获取该圆圈内所有可用的整数点。这个问题很容易解决。
一个人可能只是从x = -r to +r 和y =-r to +r 遍历一个正方形并查看if x * x + y * y <= r * r,如果是这样,请将点添加到您的结果中。
但是,最快的方法是什么?我觉得应该有某种类型的 hack,我们可以从 (2r)^2 到 4/3 r^2 进行计算
更特别的是,我有一种感觉,我们可以计算内接正方形的长度,然后添加外部剩余分量。我不确定如何做到这一点。数学有点密集。我不会发布代码,因为我想要一个通用的算法响应,但如果有人有偏好,他可能会说明最终的基准测试,这将使用 JVM 语言。
有什么帮助吗?
注意:这类似于高斯的圆问题,但不是计算点的数量,而是想知道点是什么。
【问题讨论】:
-
我想指出我知道这个问题,但想知道我们是否可以做得更好。 stackoverflow.com/questions/14285358/…
标签: algorithm performance geometry