我需要一段找画面中最小圆的代码
时间: 2024-05-07 16:16:19 浏览: 14
以下是一段用C++编写的找画面中最小圆的代码
```C++
#include<bits/stdc++.h>
using namespace std;
const int N=100005;
double X[N],Y[N];
int n;
double dis(double x1,double y1,double x2,double y2){
return sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
}
double dfs(double X[],double Y[],int n,double x,double y,double r){
if(!n) return r;
int k=rand()%n+1;
double d=dis(X[k],Y[k],x,y);
if(d-r>1e-6){
double x1=X[k],y1=Y[k],r1=dfs(X,Y,k-1,x1,y1,0);
if(r1-r>1e-6) x1=X[k],y1=Y[k],r1=dfs(X,Y,k-1,x1,y1,0);
d=dis(x,y,x1,y1);
if(d-r1>1e-6) r1=(r1+d-r)/2;
return r1;
}
return dfs(X,Y,k-1,x,y,r);
}
int main(){
srand(2333);
scanf("%d",&n);
for(int i=1;i<=n;i++){
scanf("%lf%lf",&X[i],&Y[i]);
}
printf("%.10lf\n",dfs(X,Y,n,1e9,1e9,0));
return 0;
}
```
希望可以帮到您!
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://img-home.csdnimg.cn/images/20210720083646.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)