一、要求:

1.计算到圆周率后面越多位越好。

2.用进度条显示计算的进度。

3.要求给出圆周率Π的具体计算方法和解释。

二、算法:

1.拉马努金公式:

2.高斯-勒让德公式

设置初始值:
反复执行以下步骤直到

 

 

之间的误差到达所需精度:

则π的近似值为:
下面给出前三个迭代结果(近似值精确到第一个错误的位数):
3.140...
3.14159264...
3.1415926535897932382...
该算法具有二阶收敛性,本质上说就是算法每执行一步正确位数就会加倍。

3.波尔文四次迭代式

这个公式由乔纳森·波尔文和彼得·波尔文于1985年发表的。

bailey-borwein-plouffe算法

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

4.丘德诺夫斯基公式

这是由丘德诺夫斯基兄弟发现的,十分适合计算机编程,是目前计算机使用较快的一个公式。

5.莱布尼茨公式

π/4=1-1/3+1/5-1/7+1/9-1/11+……

6.蒙特卡罗法(打鸟法)

一个正方形内部相切一个圆,圆和正方形的面积之比是π/4。 
 
在这个正方形内部,随机产生n个点(这些点服从均匀分布),计算它们与中心点的距离是否大于圆的半径,以此判断是否落在圆的内部。

统计圆内的点数,与n的比值乘以4,就是π的值。理论上,n越大,计算的π值越准。

三、算法实现

以下采用蒙特卡罗法(打鸟法),代码及图片如下。 

 1 import math
 2 import time
 3 scale=10
 4 print("执行开始")
 5 t=time.process_time()
 6 for i in range(scale+1):
 7     a,b='**'*i,'..'*(scale-i)
 8     c=(i/scale)*100
 9     π=4*(4*math.atan(1/5)-math.atan(1/239))
10     print("%{:3}[{}->{}]".format(a,b,c))
11     time.sleep(0.1)
12 print(π)
13 print("{:.2f}s".format(t))
14 print("执行结束")

运行结果:

Python 3.7.2 (tags/v3.7.2:9a3ffc0492, Dec 23 2018, 22:20:52) [MSC v.1916 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license()" for more information.
>>>
================= RESTART: C:/Users/Benny/Desktop/打鸟法求圆周率.py =================
执行开始
%   [....................->0.0]
%** [..................->10.0]
%****[................->20.0]
%******[..............->30.0]
%********[............->40.0]
%**********[..........->50.0]
%************[........->60.0]
%**************[......->70.0]
%****************[....->80.0]
%******************[..->90.0]
%********************[->100.0]
3.1415926535897936
0.56s
执行结束
>>> 

另外,进度条还可以用python的pip库来实现:

转载于:https://www.cnblogs.com/shuxincheng/p/10574900.html

用python计算圆周率Π相关推荐

  1. 鬼才!用Python计算圆周率 π

    目录 一.圆周率的历史发展 1.中国 2.印度 3.欧洲 二.用python计算圆周率 A货:什么!你不会背圆周率(鄙夷的眼神) 3.1415926535 8979323846 26433... 桥哥 ...

  2. python里的π怎么调用_用python计算圆周率π

    用python计算圆周率π 一.要求 1.要起义能计算到圆周率后面越多位越好. 2.用进度条显示计算的进度,能给出越多种进度条越好. 3.要求给出圆周率π的具体公式或者算法说明. 二.算法 1.马青公 ...

  3. python计算圆周率近似值_python计算圆周率pi的方法

    本文实例讲述了python计算圆周率pi的方法.分享给大家供大家参考.具体如下: from sys import stdout scale = 10000 maxarr = 2800 arrinit ...

  4. 如何用python计算圆周率_如何用python计算圆周率?

    如何用python计算圆周率? python计算圆周率的方法: 圆周率没有精确的计算公式,所以只能用近似的方式计算它的近似值. 我们运用蒙特卡罗方法,思路很简单,在下面图形中随机抛置大量的点, 计算落 ...

  5. python计算圆周率_python模拟蒙特·卡罗法计算圆周率

    蒙特·卡罗方法是一种通过概率来得到问题近似解的方法,在很多领域都有重要的应用,其中就包括圆周率近似值的计问题. 假设有一块边长为2的正方形木板,上面画一个单位圆,然后随意往木板上扔飞镖,落点坐标(x, ...

  6. 用python计算圆周率_用python计算圆周率π

    原博文 2020-03-22 15:32 − 用python计算圆周率π 一.要求 1.要起义能计算到圆周率后面越多位越好. 2.用进度条显示计算的进度,能给出越多种进度条越好. 3.要求给出圆周率π ...

  7. python 圆周率,用python计算圆周率π

    用python计算圆周率π 一.要求 1.要起义能计算到圆周率后面越多位越好. 2.用进度条显示计算的进度,能给出越多种进度条越好. 3.要求给出圆周率π的具体公式或者算法说明. 二.算法 1.马青公 ...

  8. python计算圆周率_Python实现计算圆周率π的值到任意位的方法示例

    本文实例讲述了Python实现计算圆周率π的值到任意位的方法.分享给大家供大家参考,具体如下: 一.需求分析 输入想要计算到小数点后的位数,计算圆周率π的值. 二.算法:马青公式 π/4=4arcta ...

  9. python计算圆周率_用python计算圆周率Π

    一.要求: 1.计算到圆周率后面越多位越好. 2.用进度条显示计算的进度. 3.要求给出圆周率Π的具体计算方法和解释. 二.算法: 1.拉马努金公式: 2.高斯-勒让德公式: 设置初始值: 反复执行以 ...

  10. python计算圆周率近似值_使用python实现计算圆周率π的方法

    使用python实现计算圆周率π的方法 发布时间:2020-11-19 17:34:12 来源:亿速云 阅读:94 这期内容当中小编将会给大家带来有关使用python实现计算圆周率π的方法,文章内容丰 ...

最新文章

  1. VTK:PolyData之TransformFilter
  2. C# FolderBrowserDialog 的用法
  3. Dynamic动态类型
  4. 一分钟理解三次握手和四次挥手
  5. 显示栅格数据的渲染器
  6. [每日一题] OCP1z0-047 :2013-07-13 oracle 10g正则表达式 REGEXP_LIKE 用法
  7. ASP.NET Core部署到CentOS7,使用Nginx代理
  8. MySQL 编码相关小结
  9. Call to your teacher(深度搜索)
  10. micropython支持stm32型号_轻松几步实现在STM32上运行FreeRTOS任务
  11. 360优化开机速度后慢了_电脑开机速度慢的原因及解决方法
  12. linux服务器离线安装python第三方库
  13. python控制步进电机_MicroPython TPYBoard v102 驱动28BYJ-48步进电机
  14. 关于 Java 的线程状态
  15. ADXL345知识学习总结
  16. NET 3行代码实现文字转语音功能
  17. 【进程】进程间通信----消息队列
  18. linux和windows和mac的文件读取方式的差异
  19. Tms320c6678——多核导航模块(Multicore Navigator)
  20. VCIP2020:相同主观质量下基于学习的UGC短视频低码率编码

热门文章

  1. 浅谈游戏《底特律:变人》
  2. google浏览器缓存文件在哪里
  3. iOS_6_ToolBar+xib+红楼梦
  4. 日程提醒app android,手机里有提醒日程安排的软件吗?
  5. 2022年武汉市小微企业服务补贴券签约服务机构申报条件、材料及时间
  6. 树莓派(Raspberry Pi 4 Model B)编译64位内核Kernel
  7. 分享几个做CTF的网站
  8. 翟菜花:她经济的营销攻坚战,4C的用户导向才是破局之法
  9. 阿里知产研究院报告:侵犯知识产权行为的罪与罚 | 湖畔新知汇
  10. 设计模式之单例模式(Singleton)