C++ 概率算法 利用蒙特卡罗算法计算圆周率

概率算法大致可分为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\n",PI);
32     system("pause");
33     return 0;
34 }

注意 思想 的学习。

猜你喜欢

转载自www.cnblogs.com/zhibei/p/11146225.html