怎么利用散点图的公式进行计算(如何用随机抛点的方法计算圆周率)

之前有一篇文章(圆周率用电脑有几种算法? 有哪些计算圆周率的神奇公式?)提到了计算机用级数计算圆周率的几个方法。

但是,计算圆周率不仅可以用割圆术、无穷级数等方法,还能用“概率法”。

所谓概率法,就是用概率统计的方法,其中的著名代表,就是蒙特卡洛算法

蒙特卡洛算法是20世纪最伟大的算法之一,它是机器学习领域常用的方法,AlphaGo就采用了蒙特卡洛算法。

那么,什么是蒙特卡洛算法,它又有什么神奇的疗效呢?

蒙特卡洛算法

20世纪40年代,波兰裔美国科学家乌拉姆在洛斯阿拉莫斯国家实验室为核武器项目工作时,发明了现代版本的蒙特卡罗算法。

出于保密的需要,而乌拉姆的叔叔常在摩纳哥的蒙特卡洛赌场输钱,因此将其命名为“蒙特卡洛”。

它本质是一种概率统计法,即:

用大量的随机样本,以事件出现的概率作为问题的解。

比如,计算圆周率π的一种奇特治疗方法。

π的计算

如图1所示,显然,图中白色1/4圆与正方形的面积比为π/4。

怎么利用散点图的公式进行计算(如何用随机抛点的方法计算圆周率)(1)

图1

那么,

我们可以在正方形内随机产生n个点,

换句话说,就是:

我们闭着眼睛,往这个正方形桌面上瞎扔n颗米粒。

通过计算这些点和原点的距离,可以判断这些点是否在1/4圆内。

经过统计,如果落在1/4圆内的点的个数为a,那么,

a/n就是我们随机扔出去的点,落在圆内的测量概率。

那么,可以有:

π/4 ≈ a/n

则,

π ≈ 4a/n;

这样,我们可以把π当作一个未知数求出来

随机模拟30000个点,则π的估算值与真实值相差仅为0.07%,如图2。

怎么利用散点图的公式进行计算(如何用随机抛点的方法计算圆周率)(2)

图2

这也可以喔,简直机智得不像实力派。

怎么利用散点图的公式进行计算(如何用随机抛点的方法计算圆周率)(3)

不足

当然,它也有不足之处。

当随机点取得越多时,其结果似乎并不会越来越精确。即使取10⁹个随机点,其结果也仅在前4位与圆周率吻合。

这有多方面的原因,比如,计算机产生的随机数是受存储格式的限制的,是离散的,并不能产生连续的任意实数。

但是,对于那些计算过于复杂而难以得到解析解,或者根本没有解析解的问题,它是一种有效的数值解法。


,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页