走近神秘的数字π!手把手教你用蒙特卡洛法来计算圆周率祖冲之小数点

可能没有一个数字像π那样神秘、浪漫、被误解或激发人们的兴趣。

——威廉·舒哈夫

《π的自然与历史》

数学可以说是无处不在。从自然模式到气候科学,从医学成像到搜索引擎,从运输网络到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战胜人类的秘密武器。

人类对于圆周率精度的追求从未停止

计算机诞生之后,好奇心使得人类在追求圆周率精度的道路上变得疯狂,记录急剧增加。

人类并没有就此止步......

随着科技的不断进步和发展,高精度计算π值被用作测试计算机处理能力的基准,更加精确的π值也随之出现。

尽管我们现实的计算中完全不需要用到精度如此高的圆周率,但对于圆周率精度的追求正是人类好奇心的呈现,这种好奇心驱使着科学的不断前进。

THE END
1.什么是算法?算法的概念什么是算法? 算法(Algorithm)是指解决特定问题的一系列明确、有限且可执行的步骤或规则。算法是计算机科学的核心概念之一,用于指导计算机完成各种任务,从简单的数学运算到复杂的数据处理和决策。 一、算法的基本定义 从广义上讲,算法可以定义为: 有穷性:一个算法必须在有限的步骤内完成。也就是说,算法不能无限循环,https://blog.csdn.net/weixin_48579910/article/details/141722210
2.算法是指什么?算法概述目前,主流的机器学习算法包括:监督学习和非监督学习。 (1)监督学习 监督学习是指从标记的训练数据推断某一功能的机器学习任务,训练数据包括一套训练示例。每套训练示例均由一个输入对象(通常为矢量)和一个期望的输出值 (也称为监督信号)组成。监督学习算法通过分析训练示例(个人理解:需分析多套训练示例),产生某种推https://m.elecfans.com/article/2008707.html
3.什么是人生算法什么是人生算法 孤鹰在行 事业上的强者,生活中的弱者1 人赞同了该文章 “人生算法”就是探索“人生”(我们要生存的这个世俗世界)和“算法”(以数学和物理为基础的科学世界)之间的关联。这是一个交织着智力和情感的探险游戏。 “人生×算法”,一个大脑脚手架,其底层以概率为基础。就像早期概率以赌场为试验场,在https://zhuanlan.zhihu.com/p/433307567
4.2*3分之1+3*4分之1+4*5分之1+.+8*9分之1+9*10分之1简便算法是什么=1/2 - 1/10=2/5 解析看不懂?免费查看同类题视频解析查看解答 更多答案(1) 相似问题 9分之1十15分之2十9分之8简便计算 3分之2×7分之5+3分之2×7分之2 4分之3×9分之1+4分之1÷9 要简便算法 计算:2分之1×3分之1+3分之1×4分之1+4分之1×5分之1+……+9分之1×10分之1 https://www.zybang.com/question/f73de9fc06ae6d0649a7e7849a1f9f0a.html
5.networkx:kclique渗透算法 k-clique对象:k个节点两两存在边关系,这就是一个k-clique对象。 如果存在多个k-clique对象之间存在k-1个共同节点,则说明这2个k-clique对象是相邻的。 完全子图 k-clique-communities算法发现的社区是可以重叠的,及一个节点既可以存在于a社区,也可以存在于b社区。 https://juejin.cn/post/7049647517142614053
6.日柱是什么意思日柱的算法是什么日柱是什么意思 日柱的算法是什么 每个人都有日柱,那么日柱具体指什么呢?在不同时间出生的人对应的是不一样的,我们可以看下自己日柱中命带什么神煞,对命理有什么影响。来华易网八字日柱专题分析更多内容吧。 日柱是什么意思? 日柱为命理学之术语,即用农历的干支代表人出生的那一天。https://www.k366.com/bazi/171899.htm
7.区块链概念1:Hash算法腾讯云开发者社区问题导读 1.哈希算法在区块链的作用是什么? 2.什么是哈希算法? 3.哈希算法是否可逆? 4.比特币采用的是什么哈希算法? 作用 在学习哈希算法前,我们需要知道哈希在区块链的作用 哈希算法的作用如下: 区块链通过哈希算法对一个交易区块中的交易信息进行加密,并把信息压缩成由一串数字和字母组成的散列字符串。 区块链https://cloud.tencent.com/developer/article/1072800
8.练习——简答题51CTO博客1.什么是算法?算法有哪些特征? 答:算法是求解问题的一系列计算步骤。算法具有有限性、确定性、可行性、输入性和输出性5个重要特征。 2.算法设计应满足的几个目标 答:算法设计应满足正确性、可使用性、可读性、健壮性和高效率与低存储量需求。 3.算法设计的基本步骤 https://blog.51cto.com/u_15127603/3567921
9.算法思想贪婪(贪心)算法注意,在现实生活中,RMB的找零可以用贪婪算法解决。但是钱币找零的问题并不能用贪婪解决所有情况。比如我们有三种纸币:100,99,1,现在要 198 元,最优解为 2 个 99 元。而贪婪算法会给出 1 个 100 元和 98 个 1 元。 3.区间覆盖 假设我们有 n 个区间,区间的起始端点和结束端点分别是[l1, r1],[l2, r2https://www.jianshu.com/p/a2d903dd0ed9
10.各大银行房贷提前还款的算法和规定是什么,不看后悔一辈子大部分社会上的贷款一族背着沉甸甸的房款压力,也算是一件心事。如果有钱想提前还清贷款,那么房贷提前还款划算吗?各大银行房贷提前还款的算法和规定是什么? 1、建设银行:不满一年而要提前还款的,要收取提前还款额的3%。一年到两年的收取2%,两年到三年的,收取1%。 2、农业银行:贷款不满一年提前还款的,以本金*月利https://m.66law.cn/laws/225734.aspx
11.课程1、 什么是算法2、 算法的特征 ●2.2算法的表示方法 1、 自然语言表示的算法2、 传统流程图表示的算法3、 NS结构图表示的算法 第三章基本数据类型 (一)内容提要本章讨论了C语言程序中的各种基础数据类型及其使用方法,如常量与变量、整型、实型、字符型的定义、表示和使用方法,C语言程序中运算符和表达式的使用https://higher.smartedu.cn/course/62354ca59906eace048cfb15
12.我的第一本算法书(豆瓣)曲奇是块洋点心1赞2022-07-23 11:08:01 —— 引自章节:0-1 什么是算法 002 丛书信息· ··· 图灵程序设计丛书(共107册), 这套丛书还有 《机器学习基础》《我的第一本编程书》《利用机器学习开发算法交易系统》《机器学习》《Python深度学习》 等。 喜欢读https://book.douban.com/subject/30357170/
13.高中数学教研组《数学与生活》校本研修活动(一)今天是2022年2月28日,因为今年是平年,所以明天是3月1日。哪年是闰年呢?这里的闰年和闰月又有什么区别呢? 二、厘清概念: 1.什么是闰年 公历的算法是根据地球围绕太阳运转所得出,每次运转一周就是公历的一年,时间加起来是365天5小时48分46秒,然一年之日数,必须是整数,故一年为365日,当地球绕太阳转了四圈,http://www.wngxzx.com/h-nd-335.html
14.把这些计算机基础知识学完后,我飘了!那么什么是压缩算法呢?压缩算法又是怎么定义的呢?在认识算法之前我们需要先了解一下文件是如何存储的 文件存储 文件是将数据存储在磁盘等存储媒介的一种形式。程序文件中最基本的存储数据单位是字节。文件的大小不管是 xxxKB、xxxMB等来表示,就是因为文件是以字节B = Byte为单位来存储的。 https://maimai.cn/article/detail?fid=1400649709&efid=VmhIiOBVBH0ua86U1tJoEA
15.史上最大,人工智能算法模型GPT3问世,这意味着什么?一个人工智能的算法模型可以大到什么程度? 绿巨人GPT-3模型给出了新答案——1750亿个参数。 实话实说,模型创新程度很难用单个指标量化,模型复杂度和参数量有一定关系,模型参数量决定模型大小。 绿巨人GPT-3模型是啥? 是一个超级大的自然语言处理模型,将学习能力转移到同一领域的多个相关任务中,既能做组词造句,又https://www.36kr.com/p/773654476666112
16.公众号接一条广告收多少钱?我做了份调研,结果是1)中尾部公众号报价是多少呢? 2)公众号10万粉丝,一条广告收多少钱? 3)头条平均阅读5000,一条广告收多少钱? 4)公众号广告报价有什么合理的算法公式? 在新媒体行业,虽然没有完全统一的广告报价公式。哪怕相同类型,相同数据,不同的账号广告费都不太一样,但区别并不是特别大。 https://www.niaogebiji.com/pc/article/detail/?aid=73332
17.中华人民共和国密码法–云南城市建设职业学院SM2算法为椭圆曲线公钥算法,比RSA算法加密强度更高、运算速度更快。SM9算法为公钥算法,用于身份认证等,加密强度高于RSA算法。SM3算法为杂凑算法,用于数字签名和完整性校验,安全性高于MD5和SHA-1算法。 商用密码应用案例 一、网络安全案例 (一)敏感数据缺乏密码保护https://www.yncjxy.com/baoweichu/falufagui/20964/