2010年10月26日 星期二

calculate PI by rand()

使用機率計算半徑為1的四分之一圓
乘以四之後為一個圓
由於圓的面積為PI*r*r,此時r又是1
所以圓面積為PI

===============================
1 #include stdio.h
2 #include stdlib.h
3 #include math.h
4
5 void get_value(int sum){
6 double x,y;
7 double tmp;
8 int count = 0;
9 int i = 0;
10
11 srand(0);
12
13 do{
14 x = (double) rand()/RAND_MAX;
15 y = (double) rand()/RAND_MAX;
16
17 tmp = x*x + y*y;
18
19 if(sqrt(tmp)<=1){
20 count++;
21 }
22
23 }while(++i < sum);
24
25 printf("result: %lf \n", 4 *((double)count/sum));
26 return;
27 }
28
29 int main(){
30
31 get_value(10000000);
32
33 return 0;
34 }

沒有留言: