圆周率的计算方法

高等数学:圆周率的计算方法 圆周率π\piπ的小数点后前314位为:3.141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117067982148086513282306647093844609550582231725359408128481117450284102701938521105559644622948954930381964428810975665933446128475648233786 阅读详情

圆周率的计算方法

 

    古人计算圆周率,一般是用割圆法。即用圆的内接或外切正多边形来逼近圆的周长。Archimedes用正96边形得到圆周率小数点后3位的精度;刘徽用正3072边形得到5位精度;Ludolph Van Ceulen用正262边形得到了35位精度。这种基于几何的算法计算量大,速度慢,吃力不讨好。随着数学的发展,数学家们在进行数学研究时有意无意地发现了许多计算圆周率的公式。下面挑选一些经典的常用公式加以介绍。除了这些经典公式外,还有很多其他公式和由这些经典公式衍生出来的公式,就不一一列举了。

 

 

  • Machin公式

   
   
    这个公式由英国天文学教授John Machin于1706年发现。他利用这个公式计算到了100位的圆周率。Machin公式每计算一项可以得到1.4位的十进制精度。因为它的计算过程中被乘数和被除数都不大于长整数,所以可以很容易地在计算机上编程实现。

    Machin.c 源程序


   
    还有很多类似于Machin公式的反正切公式。在所有这些公式中,Machin公式似乎是最快的了。虽然如此,如果要计算更多的位数,比如几千万位,Machin公式就力不从心了。下面介绍的算法,在PC机上计算大约一天时间,就可以得到圆周率的过亿位的精度。这些算法用程序实现起来比较复杂。因为计算过程中涉及两个大数的乘除运算,要用FFT(Fast Fourier Transform)算法。FFT可以将两个大数的乘除运算时间由O(n2)缩短为O(nlog(n))。

    关于FFT算法的具体实现和源程序,请参考Xavier Gourdon的主页

 

  • Ramanujan公式

   

    1914年,印度数学家Srinivasa Ramanujan在他的论文里发表了一系列共14条圆周率的计算公式,这是其中之一。这个公式每计算一项可以得到8位的十进制精度。1985年Gosper用这个公式计算到了圆周率的17,500,000位。
    1989年,David & Gregory Chudnovsky兄弟将Ramanujan公式改良成为:

   

    这个公式被称为Chudnovsky公式,每计算一项可以得到15位的十进制精度。1994年Chudnovsky兄弟利用这个公式计算到了4,044,000,000位。Chudnovsky公式的另一个更方便于计算机编程的形式是:

   

 

 

  • AGM(Arithmetic-Geometric Mean)算法

    Gauss-Legendre公式:

    初值:
   
    重复计算:
   
    最后计算:
   
    这个公式每迭代一次将得到双倍的十进制精度,比如要计算100万位,迭代20次就够了。1999年9月Takahashi和Kanada用这个算法计算到了圆周率的206,158,430,000位,创出新的世界纪录。

    Borwein四次迭代式:

    初值:
   
    重复计算:
   
   
    最后计算:
   
    这个公式由Jonathan Borwein和Peter Borwein于1985年发表,它四次收敛于圆周率。

 

 

  • Bailey-Borwein-Plouffe算法

   

    这个公式简称BBP公式,由David Bailey, Peter Borwein和Simon Plouffe于1995年共同发表。它打破了传统的圆周率的算法,可以计算圆周率的任意第n位,而不用计算前面的n-1位。这为圆周率的分布式计算提供了可行性。1997年,Fabrice Bellard找到了一个比BBP快40%的公式:

   

 


上一页  主页  下一页

计算圆周率的10种方法 圆周率是一个非常有趣的数学常数,它在几何学、物理学和工程学等领域中有着广泛的应用。在过去的几个世纪中,人们一直在寻找更精确的圆周率值,也研究了许多计算圆周率的方法。本文将介绍10种计算圆周率的方法,其中有些方法比较基础,而有些方法则需要高级的数学知识。 阅读详情

相关推荐

圆周率π的计算方法:从几何逼近到现代算法

圆周率π作为数学和工程计算中的基础常数,其精确计算一直是计算机科学和数值分析的重要课题。从几何学的割圆术到无穷级数展开,再到蒙特卡洛模拟和高斯-勒让德算法,各种计算方法在精度、效率和实现难度上各有特点。现代计算π的算法如拉马努金公式和BBP公式,结合了数学理论和计算机优化技术,能够实现万亿位级别的精确计算。这些方法不仅用于测试计算机性能,在航天轨道计算、密码学等领域也有实际应用。通过Python等编程语言的实现,可以直观理解不同算法的数学原理和工程优化技巧。

weixin_30647065的博客 327

如何使用BBP公式直接计算π的第n位

使用BBP公式可以直接求得十六进制π的第n位而不需要计算前n位的数,以下公式将直接求出十进制的π: 其中参数k代表的是所求π的精度,例如:当您希望求出π的前13位的话您只需要将k替换成13即可。其计算出来的结果为3.1415926... 接下来是如何求得十六进制π的第n位。 首先,您需要知道一个知识点:十进制的小数如何转换为十六进制? 例如,小数3.1415926转换为16进制为3.243f...

HuntZou的博客 1万+

Python编写:用Chudnovsky算法计算圆周率

在上面的代码中,我们使用了Python的decimal模块来保证高精度计算。首先,我们使用getcontext().prec将精确度设定为num+1,表示我们将保留小数点后num位。我们使用max_k计算出需要求和的最大项数,然后用循环迭代计算每一项的值,并将它们加入sum中。本文介绍如何使用Python中的Chudnovsky算法来计算圆周率,并提供完整的源代码。通过上面的代码示例,我们可以使用Python并结合Chudnovsky算法实现高精度计算圆周率π,并且可以设置需要保留的小数点位数。

ByteHero的博客 1222

说不尽的圆周率

每年的3月14日,是所谓的 π 日。还有人挖出3月14日15时16分9秒,称为所谓的 π 时(π 秒)。可见,圆周率是多么的迷人。作为中国人,最引以为豪的就是祖冲之的成就:3.1415926了。本文介绍几种常见的计算圆周率的算法,献给 π 日。

DeeperBlue的博客 2522

椭圆积分和函数:使用 AGM 算法的椭圆函数评估。-matlab开发

agm.m - 函数 AGM 计算 A 和 B 的算术几何平均值。 ellipj.m - 函数 ELLIPJ Jacobi 椭圆函数和 Jacobi 振幅(修改标准方法,解决收敛问题)。 ellipji.m - 函数 ELLIPJI 复相 u 的雅可比椭圆函数。 elliptic12.m - 函数 ELLIPTIC12 计算第一类、第二类不完全椭圆积分和雅可比 Zeta 函数的值。 elliptic12i.m - 函数 ELLIPTIC12i 计算第一类、第二类不完全椭圆积分和雅可比 Zeta 函数的 U 相复数值。 elliptic3.m - 函数 ELLIPTIC3 计算第三类不完全椭圆积分。 inversenomeq.m - 函数 INVERSENOMEQ 给出 Nome m = m(q) 的值。 jacobiThetaEta.m - 函数 JACOBITHETAET

谷歌师兄的leetcode刷题笔记-chudnovsky_algorithm:一个非常快速的计算Pi位数的公式

谷歌师兄的leetcode刷题笔记Chudnovsky-算法 Chudnovsky 算法是一种基于 Ramanujan 的 π 公式计算 π 位数的快速方法。 它由楚德诺夫斯基兄弟于 1988 年发表,用于 2009 年 12 月 2.7 万亿位 π、2011 年 10 月 10 万亿位、2016 年 11 月 22.4 万亿位 π 的世界纪录计算,但 Google 的一名员工使用了谷歌的超级计算机将在 2018 年 9 月至 2019 年 1 月计算 31.4 万亿位数字。 维基百科

C++实现pi/π/圆周率的计算方法

C++实现pi/π/圆周率的计算方法 π在本程序的逼近计算公式如下: π=16arctan(1/5)-4arctan(1/239) arctan用如下形式的级数计算: 直到级数某项绝对值不大于10-15为止;π和x均为double型。 运行程序: #include <iostream> using namespace std; double arctan(double x) { double sqr = x * x; double e = x; double r = 0; int i

lijiewoyun的博客 6022

AI辅助专利撰写实战:30分钟高效产出发明专利初稿

在技术创新的浪潮中,专利撰写常常是开发者将创意转化为知识产权保护壁垒的关键一步,但这个过程往往耗时费力,需要兼顾技术深度与法律文书规范。近期,借助AI辅助工具来提升专利撰写效率已成为一个热门探索方向。本文将围绕如何利用AI工具,在30分钟内高效完成一篇具备授权潜力的发明专利初稿,进行一场从0到1的实战演练。无论你是独立开发者、初创团队的技术负责人,还是希望保护自己研究成果的学生,这套方法都能帮助你快速梳理技术方案,形成结构严谨、逻辑清晰的专利申请文档。 1. 背景与核心概念:AI辅助专利撰写的价值与边界 在

weixin_34253126的博客 494

圆周率π的几种计算方法与分析

从代数和几何上阐述圆周率 π 的历史和计算方法, π 是无理数,也是一个超越数,与三角函数有密切关系,并且与无穷级数的和有很大关系。文中总结了多个计算圆周率的现代数学方法,并用Python语言编写了计算程序。对圆周率感兴趣的读者有引导提示作用。

liu_xiang的博客 4万+

Opencv2.4.9源码分析——HoughCircles

图形可以用一些参数进行表示,标准霍夫变换的原理就是把图像空间转换成参数空间(即霍夫空间),例如霍夫变换的直线检测就是在距离-角度空间内进行检测。圆可以表示成: (x-a)2+(y-b)2=r2                   (1) 其中a和b表示圆心坐标,r表示圆半径,因此霍夫变换的圆检测就是在这三个参数组成的三维空间内进行检测。 原则上,霍夫变换可以检测任何形状。但复杂的形状需要的

赵春江的专栏 3万+

2021秋招IC验证面经-ARM中国/中科芯/飞腾/地平线/中兴

中科芯 (央企福利待遇好,但是百分百不解决户口,适合当地人进去躺平。) 现场面试,三个面试官,时间大约40min 首先介绍一下自己,介绍一下项目。所做项目用到了FIFO吗,深度是多少,位宽是多少,仲裁算法是什么? 验证环境中的reference model是自己写的还是本身就有的,仲裁怎么在参考模型中实现,参考模型怎么获取寄存器的值? 怎么配置RTL寄存器,通过平台的寄存器模型进行寄存器配置,寄存器模型里边的方法,写一个寄存器或读一个寄存器怎么实现? 寄存器如何实现前门访问和后门访问,后门访问时

weixin_48014653的博客 6319

c语言割圆法求圆周率,(3)中国古代圆周率π的计算史:割圆术的计算方法

原标题:(3)中国古代圆周率π的计算史:割圆术的计算方法 中国古代圆周率π的计算史 第三节:割圆术的计算方法建议在WiFi环境下观看↑↑↑讲者简介黄建国,上海交通大学数学科学学院教授,主要研究方向为有限元方法与应用、 快速算法设计与分析。课程介绍本课程介绍中国古代圆周率的计算史。首先从刘徽割圆术讲起,通过介绍割圆术的算法思想和计算方法,以及刘徽不等式的证明,探寻其中所蕴含的对现代数学影响巨大的数学...

weixin_42517807的博客 1365

win 11bitlocker恢复密匙一般情况的解决方式(这里指的是你现在使用的微软账户一直没有变更过)

本来没有打算写这一篇解决帖子的,但是最近好多微博的友友都在私我询问解决方法,孩子虽然很热心,但是真的回复不过来了,打字太累了,这里给大家简单指个路,希望能够对大家有所帮助。 当时出现这个问题的时候,一搜网上的解决方法都是重装系统什么的,真是吓死孩子啦。后来去微软的官网倒腾了半天解决了问题。其实只要你没有改过微软账户,你可以直接试试我这个方法,大概三到五分钟解决问题吧。 和我情况不一样的也可以参考一下贴吧里一些大佬的分享,或者实在着急我感觉去淘宝上找个解决也不是未尝不可。 出现问题: 解决方案: 直接去微软

zhiqingxue的博客 2万+

计算pi的近似值公式法_圆周率的7大类计算方法:割圆术、连分数、分析法、概率法...

众所周知,圆周率是圆周长与直径的比值,而且是一个无理数,更进一步的说是一个超越数。由于计算的需要,古今中外的数学家从未停止对圆周率的计算,其中主要有7类方法:割圆术、分析法、沙-波法、椭圆积分法、概率法等。割圆术割圆术的流程是通过作圆的内接或外切正多边形,计算多边形的周长或面积,再将正多边形的边数增加一倍,算出其周长或面积;再增加,再计算……;随着边数的增加,多边形的周长和面积就越接近圆的周长和面...

weixin_39607798的博客 2302

Python处理高光谱数据#3 降维

基于Python的高光谱降维操作 高光谱数据:点击此处可下载 用到的库:matplotlib、scipy、spectral 主要内容:主成分分析(PCA)与线性判别(LDA) 欢迎有兴趣的朋友交流指点。最后,废话不多说直接上代码???? import matplotlib.pyplot as plt from scipy.io import loadmat import spectral as spy

qq_273058791的博客 6936

2026基金本子新规必看!聚焦四大底层问题,利用AI辅助分别破解提升中标率

我拟申报的研究主题为【明确的研究主题或关键词组合】。选题方向也是评审专家关注的核心之一,申报前可以检索近五年领域前人中标项目,分析现有研究的空白与不足,并结合自身研究基础选择 “人无我有、人有我优” 的细分方向,如果是交叉学科选题,则要阐述不同学科的融合逻辑与创新点。“推动国家战略”、“带来行业发展”等宏观表述,有很多同仁都喜欢用这类话术开篇,但实际上宏大叙事无法替代具体的真实科学问题,明确不了研究要解决的核心痛点,更没有说明问题的现实针对性,评审看了往往抓不到研究的核心价值。

智能AI让学术科研更容易 294

圆周率与级数

/* 圆周率与级数 我国古代数学家对圆周率方面的研究工作,成绩是突出的。 三国时期的刘徽、南北朝时期的祖冲之都在这个领域取得过辉煌战绩。 有了计算机,圆周率的计算变得十分容易了。如今,人们创造了上百种方法求π的值。 其中比较常用且易于编程的是无穷级数法。 π/4 = 1 – 1/3 + 1/5 – 1/7 + 1/9 - … 是初学者特别喜欢的一个级数形式,但其缺点是收敛太慢。 π/2 = 1 +

韩世雷 程序员专栏 5599

创新引入HAttention模块:提升YOLOv8小目标检测精度【YOLOv8】

YOLOv8在前几个版本的基础上进行了多项优化,特别是在模型的速度和精度上做了较大改进。改进的backbone:引入了更加高效的骨干网络(backbone)设计,如更深的网络层和更高效的特征提取模块。增强的Neck模块:使用了PANet等机制来更好地融合不同尺度的特征,增强了多尺度目标检测能力。增强的Head模块:包括多头检测头,以便针对不同大小的目标进行更精细的预测。尽管如此,YOLOv8仍面临着在小目标检测精度上不如大型目标的挑战,尤其在复杂背景或高密度目标环境下。

博客 2769

(愚人节玩笑)历史上最奇怪的圆周率计算法

    晚上好!今天是 4 月 1 日愚人节。你猜对了,这篇日志中的所有人物和事件完全是由本人编造的,如有雷同,纯属巧合。祝大家愚人节快乐!    从古至今,计算圆周率一直挑战着人类的探索能力极限,人们为此提出了效率越来越高的计算方法。可是,你知道多少圆周率的另类计算法呢?今天我们就来和大家分享一下,历史上出现的几个最奇怪的圆周率计算法。 功亏一篑的人肉计算记录    电脑计

matrix67的专栏 1542

【1】Java 部分笔试题解析

解析A.abstract关键字应该放在class关键字之前。C.抽象方法不能有方法体。D缺少了class关键字。

博客 3941

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

圆周率一千万亿位_目前圆周率已经达到10万亿位了,为何还在不停地计算圆周率?...

原标题:目前圆周率已经达到10万亿位了,为何还在不停地计算圆周率?网友一:对于我们日常生活应用来说,π=3.14就够用了,这就是小学毕业的要求。如果是工程上用,π=3.1415927也足够用了,也就是计算器的精度。那么如果继续计算圆周率,到100位、1万位,其实已经不是实用价值,而是数学研究价值了。1,信念,验证无限不循环π肯定是无限不循环的,不需要验证了。但是,作为数学的信念,我们就想验证一下。...

weixin_33835155的博客 1010

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

C++计算圆周率

利用沟谷定理算出三角形高为sqrt(1*1-0.5*0.5)=0.866,用圆的半径减去三角形的高就为超出部分线段的长度0.233。再将圆看成多个等腰三角形组合而成的多边形,则周长=0.518*12=6.216,圆周率=6.216/2=3.108。假如将圆看成多个等边三角形组合而成的多边形,那么圆的周长=6*1=6,圆周率=6/2=3。现在,我们再作一条半径把等边三角形分成2分,则两个直角三角形的斜边长1,短边长0.5。首先我们先用一个特殊三角形——等边三角形放入圆中,三角形的边长与圆的半径都为1。

m0_72413130的博客 2131

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Python语言程序设计----【第4周 程序的控制结构】 之4.5 实例6: 圆周率的计算

圆周率的近似计算公式 1、程序如下: #CalPiV1.py pi = 0 N = 100 for k in range(N): pi += 1/pow(16,k)*(4/(8*k+1) - 2/(8*k+4) - 1/(8*k+5) - 1/(8*k+6)) print("圆周率值是: {}".format(pi)) 结果:...

qq_36045093的博客 500

random库的使用——附圆周率计算方法(公式法&蒙特卡罗方法)

random库的使用——附圆周率计算方法(公式&蒙特卡洛)

weixin_51677070的博客 1552

圆的面积等于圆的周长的一半乘半径_今天是圆周率日,你除了会背3.14159,还知道些什么?...

今天是国际圆周率日如果现在突然要你背π的值你能背到几位?我大概可以背到20多位:3.1415926535897932384626科博士对着苍天发誓:这绝对不是背出来的那除了这几个数字你对圆周率的了解又有多少呢?今天科博士就带各位来认识一下圆周率吧~圆周率是什么?圆周率是圆周长与直径的比值,也是圆形面积与半径平方的比,用一个希腊字母π来表示,是一个在数学及物理学中普遍存在的数学常数。π是精...

weixin_39560604的博客 532
上一篇: ANTLR, ANother Tool for Language Recognition,
下一篇: 用Machin公式计算圆周率的源程序
fraternity_java
博客等级 码龄22年 1粉丝 30原创
评论 10
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值