他抛了27亿粒米粒儿近似计算出了圆周率

Kenda ·
更新时间:2024-09-21
· 983 次阅读

他抛了27亿粒米粒儿近似计算出了圆周率

18世纪,法国数学家布丰曾用抛针法计算出了圆周率的近似值。

今天,中国的一个造作男孩抛了27亿粒米粒儿也计算出了圆周率的近似值。

一、理论基础

布丰的计算方法在本质上是一种概率问题。接受过高中教育的童鞋应该都学习过几何概型。

首先我们在地板上画出一个正方形的区域,并画出其内切圆。

现在我们向这个正方形区域抛一个“米粒儿”,那么这个米粒儿落入圆形区域的概率应当等于圆的面积比上正方形的面积。

通过化简不难得出,圆周率π的值为该概率的四倍。

那么我们便有了一种计算圆周率的新思路,通过计算米粒儿落入圆形区域的概率来间接计算圆周率。

只要你有足够的耐心和毅力,抛的米粒儿越多,样本容量越大,数值越精确。

但显然,这是一种十分可耻的浪费粮食的行为,所以我们不妨借助计算机模拟来帮助我们实现这一过程。

二、算法实现

现在构建一个平面直角坐标系,画出一个边长为2的正方形以及一个半径为1的圆。

易知圆的方程为,我们借助计算机随机生成一组坐标(x,y),相当于向该区域抛出了一粒米,其中x,y的取值范围均为[0,2]。对该随机坐标进行判断,如果我们即认为“米粒儿”落入了圆形区域,最后统计抛出米粒的个数和落入圆形区域的个数即可求出概率,从而间接计算圆周率。

三、C++语言程序实现

在这里简单写了一个程序,仅供参考。

程序每抛10000次米粒儿进行一次结果输出,同时以3.1415926为标准值计算出相对误差。之所以不让他每抛一次输出一次,是为了让计算机把更多的精力放在计算上,提高计算效率。

编译,运行

程序运行后,鄙人就出去玩了,让他自己抛去吧哈哈哈哈。

当我回来的时候,这家伙已经抛了27亿多粒米粒儿,有21亿多个米粒儿落入了圆形区域,得到的圆周率稳定在3.139563左右,相对误差仅为0.000006%

四、总结

在误差允许范围内可以说是比较准确了。虽然这种方法得到的数值不一定准确,但这未尝不是一种机器计算常量的新思路。


作者:Coder.AN



近似 圆周率

需要 登录 后方可回复, 如果你还没有账号请 注册新账号
相关文章