美文网首页π
蒙塔卡罗法计算π

蒙塔卡罗法计算π

作者: 比轩 | 来源:发表于2015-11-03 22:50 被阅读393次
题目:

蒙塔卡罗(Monte Carlo)方法,又称随机抽样或统计试验方法。当所要求解的问题是某种事件出现的概率,或某随机变量的期望值时,可以通过某种“试验”的方法求解。

蒙塔卡罗法.jpg

应用蒙瑞特卡罗方法求解π的步骤:随即向单位正方形和圆结构抛洒大量点,判断每个点在圆内或者圆外,圆内点数除以圆外点数就是π值。随机点数量越大,得到的π值越精确。

实际问题:

对于随机数的处理要小心再小心,稍有不小心就会改变数字的频率,导致最终结果误差太大。
刚开始使用模10乘0.1的方法:
class="brush:cpp;toolbar:false">x/y=rand()%10*0.1;
修正过的语句,比之前的算出的pi精确了不少
x/y=rand()*1.0/RAND_MAX;

源码:

//PI计算
#include <iostream>
#include <cstdlib>
#include <cmath>
#include <ctime>
using namespace std;
int main()
{
cout<<"***COUNT PI***\n Try 100,000,000 times\n"<<endl;
cout<<"counting....."<<endl;
doublex,y,z,num=0,a=1;//定义坐标参数
const int max_num=100000000;//尝试次数
srand(unsigned(time(0)));//用时间做随机数的种子
for (int i = 0; i<max_num; i++)//生成随机数
{
    x=rand()*1.0/RAND_MAX;
    y=rand()*1.0/RAND_MAX;
    z=x*x+y*y;
    //cout<<z<<"\t";
    if(z<=a)//判断是否落在圆内
        num++;
}
cout<<"PI="<<(num/max_num)*4<<endl;
return0;
}

相关文章

  • 蒙塔卡罗法计算π

    题目: 蒙塔卡罗(Monte Carlo)方法,又称随机抽样或统计试验方法。当所要求解的问题是某种事件出现的概率,...

  • 6.5.1蒙塔卡罗模拟理论概述。.where、.sqrt

    蒙塔卡罗模拟:通过随机采样来找到问题的近似答案 '蒙特卡罗模拟方法,又称,‘随机抽样’或‘统计实验方法,是以概率和...

  • 自学Python:π的近似值

    使用蒙特卡罗法求π的近似值。 蒙特卡罗方法或称计算机模拟方法,是一种基于“随机数”的计算方法。这一方法源于美国在第...

  • 统计学习方法——修炼学习笔记19:马尔可夫链蒙特卡罗法

    蒙特卡罗法也称统计模拟方法,是通过从概率模型的随机抽样进行近似数值计算的方法。马尔可夫链蒙特卡罗法是以马尔可夫链为...

  • 卡罗塔先生

    王一宁读书打卡第30天,今天我读了卡罗塔先生。卡罗塔先生一直想要一只宠物,但是到底要什么好呢?没有办法, 卡罗塔先...

  • 马尔科夫链蒙特卡罗法

    蒙特卡罗法(Monte Carlo Method)也称为统计模拟方法,是通过概率模型的随机抽样进行近似数值计算的方...

  • 分位数回归法计算VaR

    一、知识点 之前讲完了历史模拟法和蒙特卡罗模拟法计算VaR和ES,接下来要讲的是分位数回归法。回归法的目标和做法是...

  • 五只小猪

    卡拉·勒马钱特 案件委托人 埃米亚斯·克雷尔 画家 被害人 卡罗琳·克雷尔 被指控谋杀丈夫 死于监狱 蒙塔古·德普...

  • 浅谈填料塔尺寸计算

    填料塔 4.1.3 填料塔工艺尺寸的计算 填料塔工艺尺寸的计算包括塔径的计算、填料层高度的计算及分段等。 4.1....

  • 历史模拟法、蒙特卡罗模拟法计算VaR和ES值

    一、知识点介绍 1.1 历史模拟法 我们在之前有用到Delta-Normal的GARCH和RiskMetrics方...

网友评论

    本文标题:蒙塔卡罗法计算π

    本文链接:https://www.haomeiwen.com/subject/fziqhttx.html