编写程序 c6-2-2.c,用蒙特卡洛法求圆周率。

2.编写程序 c6-2-2.c,用蒙特卡洛法求圆周率。
(1)蒙特卡洛基本思想
蒙特卡罗(Monte Carlo)方法,又称随机抽样或统计试验方法,属于计算数学的一个
分支,它是在上世纪四十年代中期为了适应当时原子能事业的发展而发展起来的。传统的经
验方法由于不能逼近真实的物理过程,很难得到满意的结果,而蒙特卡罗方法由于能够真实
地模拟实际物理过程,故解决问题与实际非常符合,可以得到很圆满的结果。这也是以概率
和统计理论方法为基础的一种计算方法,是使用随机数(或更常见的伪随机数)来解决很多
计算问题的方法。将所求解的问题同一定的概率模型相联系,用电子计算机实现统计模拟或
抽样,以获得问题的近似解。为象征性地表明这一方法的概率统计特征,故借用赌城蒙特卡
罗命名。
蒙特卡洛方法可以人为地构造出一个合适的概率模型,依照对该模型进行大量的统计实
验,使它的某些统计参量正好是待求问题的解。
(2)用蒙特卡洛方法求解圆周率
假设正方形内部有一个相切的圆,如图6-5:

img

图 6-5 正方形及相切的圆
那么,圆面积和正方形面积的比值是π/4:

img

现在,在这个正方形内部,随机产生n个点(即n个坐标对 (x, y)),当产生的点的次数
足够多(也就是n足够大)以后,“落在圆内的点的次数/落在正方形内的点的次数”这个比值会
无限接近“圆的面积/正方形的面积”这个比值,也就是圆周率的四分之一。模拟产生的点
的次数越多,圆周率的近似结果越精确。