一、要求:

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 importmath2 importtime3 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/zzalovelyq/p/12836572.html

本站声明:网站内容来源于网络,若有侵权,请联系我们,我们将及时处理。

python中莱布尼茨计算圆周率_python圆周率盘算(带进度条)相关推荐

  1. python中莱布尼茨计算圆周率_IOS 莱布尼茨公式计算圆周率π

    圆周率其实就是一个圆周长与直径的比值我们通常用希腊字母π表示, 他的计算公式有多种,  其中用莱布尼茨公式是这样   即: 如果你想知道为什么?  既然你诚心诚意的发问了,  我就大发慈悲的告诉你! ...

  2. python莱布尼茨法计算π_酷叮猫少儿编程讲堂——Python 用莱布尼茨等式求π

    原标题:酷叮猫少儿编程讲堂--Python 用莱布尼茨等式求π Python 用莱布尼茨等式求π 2018-08-01 德国大数学家莱布尼茨Leibniz在研究圆周率π的过程中发现一个数学公式是这样的 ...

  3. python中异或怎么算_python 异或运算的前提_异或运算公式

    Python基础(10)–数字-Python-第七城市 609x288 - 73KB - JPEG Python基础(10)--数字_资讯_突袭网 609x288 - 33KB - JPEG pyth ...

  4. [转载] python中for语句用法_详解Python中for循环的使用_python

    参考链接: 在Python中将else条件语句与for循环一起使用 这篇文章主要介绍了Python中for循环的使用,来自于IBM官方网站技术文档,需要的朋友可以参考下 for 循环 本系列前面 &q ...

  5. python中for语句用法_详解Python中for循环的使用_python

    这篇文章主要介绍了Python中for循环的使用,来自于IBM官方网站技术文档,需要的朋友可以参考下 for 循环 本系列前面 "探索 Python,第 5 部分:用 Python 编程&q ...

  6. Python中的乘方计算

    [小白从小学Python.C.Java] [Python-计算机等级考试二级] [Python-数据分析] Python中的乘方计算 power()函数 选择题 以下python代码输出什么? imp ...

  7. python中的复数计算

    python中的复数计算 在python中,有时需要对复数进行计算,比如-1开方运算,普通的math模块难以实现计算结果,此时可以使用cmath模块进行. 例如 import cmath cmath. ...

  8. php 拖拽 上传文件 进度,在Vue中如何实现带进度条的文件拖动上传功能

    这篇文章主要介绍了Vue实现带进度条的文件拖动上传功能,本文通过实例代码给大家介绍的非常详细,具有参考借鉴价值,需要的朋友可以参考下 1. 基本界面 content="width=devic ...

  9. uni-app中自定义图表(canvas实现chart图表)开发篇(1)-圆环带进度条

    经常开发中,会遇到各种各样图表,这时大家普遍会想到去找插件.uniapp中常用的有uchart.js和echart.js,这对图表要求不高的项目来说,是很便捷的.但有时会遇到一些定制图表,加上UI的美 ...

最新文章

  1. Redis进阶 -CLUSTER NODES 信息结合实际输出信息解读
  2. [云炬创业基础笔记]第二章创业者测试19
  3. Akka并发编程——第八节:Actor模型(七)
  4. jq中查找上级_必备实用技能:在EXCEL中制作下拉菜单
  5. 敏感词过滤的php代码,PHP敏感词过滤
  6. Ansible 之 用户管理
  7. QTableView修改数据后弹出是否保存的提示框。
  8. 斗地主发牌游戏编程java,自己做的斗地主游戏发牌C#程序
  9. MQTT——国密SSL加密
  10. walking机器人入门教程-rviz插件-多点导航插件的航点保存和加载
  11. Mac使用系列之软件安装权限
  12. Excel 透视图数据源无效的问题(PivotTable Data Source Not Valid)
  13. 获取Golang环境变量的三种方式
  14. 【Qt】断言Q_ASSERT的使用
  15. Mac-Mac上如何制作GIF动图
  16. 打补丁的日子,比写代码的日子难熬多了
  17. 软件中间件,你知道哪些?
  18. Angular 2+ Material Design Admin Template
  19. 单片机第1季:零基础学51单片机-按键
  20. QQ旋风踏上“迷你快车”山寨路

热门文章

  1. Yocto系列讲解[入门篇] 1 - 快速入门熟悉Yocto的构建
  2. 网格交易 python代码_网格交易原理和代码
  3. Android Studio Git教程
  4. 物联网技术练习题(二)——多选题与简答题
  5. silverlight beet - 从xap文件中加载图片
  6. 64位系统安装32位打印机驱动
  7. 这款吊打Chrome、Edge的浏览器,时隔573天再度更新
  8. 如果实现类似微信附近的人功能
  9. LSTM结构理解与python实现
  10. day2-----k8s集群管理常用知识点(1)