可能没有一个数字像π那样神秘、浪漫、被误解或激发人们的兴趣。
——威廉·舒哈夫
《π的自然与历史》
数学可以说是无处不在。从自然模式到气候科学,从医学成像到搜索引擎,从运输网络到AI的优化,从建模到流行病的控制……数学在我们日常生活的几乎每个领域都发挥着至关重要的作用:
联合国教科文组织在2019年11月26日第四十届大会批准宣布,3月14日为“国际数学日(InternationalDayofMathematics,简称IDM)”。因为“3.14”是圆周率数值最接近的数字,所以这一天也叫圆周率日(πDay)。
圆周率π是一个迷人的数字,人们对它的认识推动了数学的长足进步
圆周率,一般以π来表示,是一个在数学及物理学中普遍存在的数学常数,它是圆形的周长与直径的比值。研究π的历史可以追溯到几千年前,它是数学家们一直以来追踪的目标之一。
公元前250年,希腊数学家阿基米德通过割圆术计算圆周率,阿基米德进行了96边形的割圆之后,将圆周率推到了小数点后两位3.14。
直到公元265年,中国的数学家刘徽用割圆术的方法,通过正3072边形计算出π的数值为3.1416,艰难地把圆周率推到了小数点后四位。
200年后,祖冲之继续使用割圆术计算12,288形的边长,将圆周率推到了小数点后六位,可惜的是,由于文献的失传,祖冲之的计算方法我们现在已经不得而知了。
祖冲之将圆周率π的记录保持了800年。随着近代数学的发展,数学家韦达、罗门、科伊伦、司乃耳、格林伯格通过割圆术陆续将圆周率推到了小数点后39位,这个精度是什么概念呢,如果我们通过小数点后39位的圆周率计算一个一个可观察宇宙大小的圆,计算的误差仅仅只有一个氢原子大小。
18世纪,法国数学家布丰提出了随机投针法,即利用概率统计的方法来计算圆周率π的值,也就是著名的投针实验。布丰在地板上画出若干平行的直线,再将一根根短于平行直线距离的针撒到地板上,通过统计针的总数和与直线相交的针的个数,从而计算圆周率。
这种算法虽然虽然没有打破圆周率的记录,但这种将几何与概率结合起来的思想催生了蒙特卡洛算法,也让人工智能成为了可能。
用蒙特卡洛法计算圆周率
2016年,围棋AIAlphaGo击败了顶尖的人类棋手李世石,一时轰动世界。
围棋有19×19总共361个交叉点,每个交叉点可以有黑棋、白棋、没有棋子三种情况,除去围棋规则不允许和对称的情况外,总共约为2x10170种情况。比整个宇宙的原子还多,穷举法无法计算所有情况。
1、什么是蒙特卡洛算法?
20世纪40年代美国开启了研制原子弹的“曼哈顿计划”,这个计划的领导者是现代计算机之父冯诺依曼。
在研制原子弹的过程中,冯诺依曼提出了一种新的算法,通过大量随机样本去了解一个高度复杂的系统,并把这个算法命名为“蒙特卡洛算法”。
蒙特卡洛是摩洛哥的一座城市,以赌博出名。赌博还是算法,都与概率和随机性有关。所以,蒙特卡洛算法的核心就是——蒙。
2、怎样认识蒙特卡洛法?
我们可以用NetLogo设计一个蒙特卡洛法计算圆周率的程序,让学习数学变得更简单,也为我们提供一个新的思维方式。
蒙特卡洛法其实很简单,如上图,首先我们作圆以及圆的外界正方形。假设圆的半径为R,则外接正方形边长为2R。
接下来,我们在正方形内随机投点如果随机投点。
假设我们总共投进了a个点,落入圆内的点有b个,那么,a和b的比例是多少呢?
根据面积公式可求,S圆=πR2,S方=4R2,我们很容易得知,b/a≈S圆/S方=πR2/4R2=π/4。
这样我们就建立起一个落在圆内的概率(b/a)和圆周率π的关系,通过简单的移项,我们获得了π与投点个数的关系:π≈b/a×4,这样我们就可以通过计算b和a的数据计算圆周率π。
点击运行,右侧的舞台上就会随机出现小海龟,我们可以通过统计站在绿色区域的小海龟和总共出现的海龟比例,来估算圆周率。点击运行,我们可以看到无填上出现了很多小海龟。
通过下方误差率表统计着估算的圆周率与高精度的圆周率之间的误差率变化,我们看到,一开始是误差率非常高,随着投点数量的增加,误差率慢慢接近于0.也就是说,只要我们进行足够多的投点,就可以获得精度较高的圆周率。
3、如何用NetLogo设计蒙特卡洛法计算圆周率的程序?
我们用下面两个流程图展现初始化与运行两个按钮的程序。
而计算圆周率的程序可以通过监视器完成,程序只有一句话:
(turtles_in_green/total)*4
这就是我们之前说的π≈b/a×4。
4、蒙特卡洛法有哪些特点?
我们来总结一下。
首先,蒙特卡洛法需要进行多次重复试验,多次投点才能获知圆周率;蒙特卡洛法的精确度低,数万次乃至数十万次投点,才将圆周率误差提高到0.01%。
从另一方面看,蒙特卡洛法有较高的泛用性,许多很多可以使用积分求面积的计算也可以通过蒙特卡洛法得到,对于不规则图形甚至可能是唯一方法。
蒙特卡洛法还有计算简便的特点,对于复杂度极其高的计算,蒙特卡罗法更为简便。
正是这些特点,使得蒙特卡洛法成为围棋AI战胜人类的秘密武器。
人类对于圆周率精度的追求从未停止
计算机诞生之后,好奇心使得人类在追求圆周率精度的道路上变得疯狂,记录急剧增加。
人类并没有就此止步......
随着科技的不断进步和发展,高精度计算π值被用作测试计算机处理能力的基准,更加精确的π值也随之出现。
尽管我们现实的计算中完全不需要用到精度如此高的圆周率,但对于圆周率精度的追求正是人类好奇心的呈现,这种好奇心驱使着科学的不断前进。