#include<stdio.h> |
#include<stdlib.h> |
#include<time.h> |
#define N 500000000 |
/*假设有一个圆半径为1,所以圆面积就为PI,而包括此四分之一圆的正方形面积就 |
为1,因此可以生成(0,0)到(1,1)之间的任意坐标,计算坐标落在四分之一圆内的概率即可求得四分之一圆的面积,进而求得圆的面积,即PI。(N的值越大计算的PI越精确)*/ |
int main ( void ) |
{ |
int i,sum=0; |
double x,y; |
srand ( time ( NULL ) ); |
for ( i=1; i<N; i++ ) |
{ |
x= ( double ) rand () /RAND_MAX; |
y= ( double ) rand () /RAND_MAX; |
if ( ( x*x+y*y ) <1 ) |
sum++; |
} |
printf ( "PI=%f\n" , ( double ) 4*sum/N ); |
return 0; |
} |