求教:如何用蒙特卡罗法计算圆周率
请定义一个函数判断一个点与坐标原点的距离是否小于1,是否在单位圆内.借助这一函数写一个通过蒙特卡罗法计算圆周率值的程序:每次计算随机生成两个0与1之间的实数(利用标准库的随机数生成函数产生这种实数),看这两个值形成的点是否在单位圆内.生成一系列随机点,统计位于单位圆内的点数和总点数,看它们之比的4倍是否趋向圆周率的值.请生成100,200,…,1000个数据点做实验.
蒙特卡罗技术优缺点分析
蒙特卡罗模拟是一种有效的统计实验计算法.它无需了解计算值的分布,可以人为
地造出一种概率模型,使它的某些参数恰好重合于所需计算的量;又可以通过实验,用
统计方法求出这些参数的估值:把这些估值作为要求的量的近似值.在项目管理中,常
常用到的随机变量,如与成本和进度有关的变量如价格,用时等,由于实际工作中可以
获得的数据量有限,它们往往是以离散型变量的形式出现的.例如,对于某种成本只知
道最低价格,最高价格和最可能价格;对于某项活动的用时往往只知道最少用时,最多
用时和最可能用时三个数据.经验告诉我们,项目管理中的这些变量服从某些概率模型.
蒙特卡罗技术则提供了把这些离散型的随机分布转换为预期的连续型分布的可能,通过
将这些随机变量变成某种规律的分布,来把握项目的风险和不确定因素①气
但无论是理论上还是在实践中,传统的蒙特卡罗技术都存在工作量大的问题.从理
论上来说,蒙特卡罗方法需要大量的实验.实验次数越多,所得到的结果才越精确.而
且实验表明,一直到公元20世纪初期,尽管实验次数数以千计,利用蒙特卡罗方法所
得到的圆周率n值,还是达不到公元5世纪祖冲之的推算精度.这可能是传统蒙特卡罗
方法长期得不到推广的主要原因.但计算机技术的发展使得蒙特卡罗方法在最近10年
得到快速的普及.现代的蒙特卡罗方法,己经不必亲自动手做实验,而是借助计算机的
高速运转能力,使得原本费时费力的实验过程,变成了快速和轻而易举的事情.蒙特卡
罗方法可以利用计算机针对某种概率模型进行数以千计,甚至数以万计的蒙特卡罗模拟
随机抽样.借助计算机技术,蒙特卡罗方法实现了两大优点:一是简单,省却了繁复的
数学推导和演算过程,使得一般人也能够理解和掌握;二是快速.简单和快速,是蒙特
卡罗方法在现代项目管理中获得应用的技术基础