gpt4 book ai didi

math - 在 O(n) 中找到圆上最近的 2 个点的理论算法

转载 作者:行者123 更新时间:2023-12-01 04:16:04 25 4
gpt4 key购买 nike

给定单位圆轮廓上的 n 个点,我想计算最近的 2 个点。

点没有排序,我需要在 O(n) 中完成(所以我不能顺时针排序......)

我曾经知道对此的解决方案,但忘记了……该解决方案包括散列,并将圆分成 n 个或多个切片。

如果你找到一个算法只计算距离,而不是具体的点,那就足够了。

最佳答案

这是一个 solution that purports to be O(n log log n)用于查找直线上最近的一对点。这是从你的问题的一个微不足道的转变——每一点
单位圆上的(x,y)映射到线段[0,2pi)中的线性坐标x',
其中 x' = atan2(y,x)。这个想法,一旦你把它转换成一维问题,就是
大致开始将 x' 坐标散列到桶中,将大桶重新划分为
更小的桶直到每个桶最多有一个点,然后遍历列表
并找到最接近的一对。 (并且您还需要进行一项额外检查,以查看
具有最小和最大 x' 坐标的点形成比线性更近的一对
最低限度。)

关于math - 在 O(n) 中找到圆上最近的 2 个点的理论算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3731452/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com