gpt4 book ai didi

在许多圆的半径内找到点的算法?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:16:41 25 4
gpt4 key购买 nike

我有许多半径为 1 的圆,我需要找到一个包含在所有这些圆的半径内的点(或者更可能是许多点的平均值)。是否有一种算法可以做到这一点而无需暴力破解?

我在下面添加的评论更详细地说明了我的问题:

“为了增加一点特殊性:我正在尝试找到一个点(或非常接近它的某个地方,至少在 .05 单位精度内)。给我找到该点的唯一信息是一组关于50 个点,所有这些都在我的神秘点的一定误差半径(在本例中为 1 个单位)内。因此,我要查找的点在给我的所有圆的半径内。我正在寻找对于除了暴力破解大量随机点直到 1 满足所有条件之外的算法。抱歉,如果我的问题真的很模糊,这是一个抽象的问题,很难解释。”

最佳答案

最简单的解决方案是这个问题的 O(n^3) 时间复杂度解决方案

其中,n = 圆圈数

至少有一个圆与圆的交点是一个好的答案。

找出所有圆之间所有可能的交集。现在在这些交点中找到一个在所有其他圆圈内的交点。

这是一个简单的伪代码:

vector<Point> points;
vector<Circles> circs;
for(i=0;i<circs.size();i++) {
for(j=i+1;j<circs.size();j++) {
points.push_back(find_intersection(circs[i],circs[j]));
//here you will find at most 2 intersections push both in this list
}

for(i=0;i<points.size();i++) {
int cicrs_covered = 0;
for(j=0;j<circs.size();j++) {
if(is_point_inside_circle(points[i],circs[j])) {
cicrs_covered++;
}
}
if(cicrs_covered == circs.size()) {
//answer is points[i]
}
}

关于在许多圆的半径内找到点的算法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39587131/

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