概率算法大致可分为4种形式:
数值概率算法;
蒙特卡罗算法;
拉斯维加斯算法;
舍伍德算法;
计算蒙特卡罗概率的算法实现:
1 #include "stdio.h" 2 #include "time.h" 3 #include "stdlib.h" 4 5 double MontePI(int n) 6 { 7 double PI; 8 double x, y; 9 int i, sum; 10 11 sum = 0; 12 srand(time(NULL)); 13 for (i = 1; i < n; i++) 14 { 15 x = (double)rand() / RAND_MAX; 16 y = (double)rand() / RAND_MAX; 17 if ((x*x + y*y) <= 1) 18 sum++; 19 } 20 PI = 4.0*sum / n; 21 return PI; 22 } 23 24 int main() 25 { 26 int n; 27 double PI; 28 29 scanf("%d",&n); 30 PI = MontePI(n); 31 printf("PI=%f ",PI); 32 system("pause"); 33 return 0; 34 }
注意 思想 的学习。