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 }

注意 思想 的学习。

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM