[C/C++ 演算法]- 蒙地卡羅法求 PI
[C/C++ 演算法]- 蒙地卡羅法求 PI
剛才找資料時發現一個C/C++的教學網站,趕快發揮(C/P)的長才將它備份來,有需要的同好,歡迎來(C/P)一下^^。
拷貝來源:
http://openhome.cc/Gossip/AlgorithmGossip/
http://openhome.cc/Gossip/AlgorithmGossip/MathPI.htm
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define N 50001
int main(void) {
srand(time(NULL));
int sum = 0;
int i;
for(i = 1; i < N; i++) {
double x = (double) rand() / RAND_MAX;
double y = (double) rand() / RAND_MAX;
if((x * x + y * y) < 1) {
sum++;
}
}
printf("PI = %f\n", (double) 4 * sum / (N - 1));
return 0;
}
|