c语言,蒙特卡洛方法求pi。
发布网友
发布时间:2024-04-27 02:22
我来回答
共1个回答
热心网友
时间:2024-05-18 08:11
dty@ubuntu:~$ cat pi.c
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main()
{
unsigned long i;
unsigned long m;
const unsigned long N=100000000;
double x,y,pi;
srand((unsigned)time(NULL));
for(i=0,m=0;i<N;i++)
{
/*x,y在区间(-1,1)*/
x=2.0*rand()/RAND_MAX-1;
y=2.0*rand()/RAND_MAX-1;
if((x*x+y*y)<=1)
{
m++;
}
}
pi=4.0*m/N;
printf("%lf\n",pi);
return 0;
}
dty@ubuntu:~$ gcc pi.c
dty@ubuntu:~$ ./a.out
3.141575