使用 python 实现π的计算

π的计算

一、π的简介

  • π的介绍

  圆周率用希腊字母 π(读作pài)表示,是一个常数(约等于3.141592654),是代表圆周长和直径的比值。它是一个即无限不循环小数,在日常生活中,通常都用3.14代表圆周率去进行近似计算。

  • π的求解历程

  1965年,英国数学家约翰·沃利斯(John Wallis)出版了一本数学专著,其中他推导出一个公式,发现圆周率等于无穷个分数相乘的积。

  2015年,罗切斯特大学的科学家们在氢原子能级的量子力学计算中发现了圆周率相同的公式。

  2019年3月14日,谷歌宣布圆周率现已到小数点后31.4万亿位。

  此处用一个自我感觉‘良好’的公式进行求解,说良好是因为计算结果相对准确,但计算过程用时较长,一起来学习吧~~~

二、π的近似计算

  1. 计算公式

  2. 方法讲解

  所用公式等式右边分子都为1,分母为递增数列,从第一项开始,奇数项符号为正,偶数项符号为负。等式右边的分母越大,越小,圆周率π计算的值越精确;换个角度讲,就是等式右边的项越多,计算的值越精确。

  3. 代码实现(python)

 1 from math import fabs           #导入数学模块
 2 from time import perf_counter   #导入时间模块
 3
 4 def Bar(i):         #动态文本条
 5     N = pow(10,level)
 6     a = int((i/N)*50)
 7     b = 50 - a
 8     Y , N = ‘*‘ * a , ‘.‘ * b
 9     print("\r计算中:{:3.0f}% [{}->{}] {:.2f}s"
10           .format(2*a,Y,N,perf_counter()),end=‘‘)
11
12 level = eval(input(‘计算Pi精确到小数点后几位数:‘))
13 print(‘\n{:=^70}‘.format(‘计算开始‘))
14 a,b,pi,tmp = 1,1,0,1
15 i = 0
16 ‘‘‘
17 a 分子  |  b 分母  |  pi 圆周率
18 tmp 存储a/b的值    |  i  执行进度
19 ‘‘‘
20 perf_counter()      #开始计时
21 while (fabs(tmp) >= pow(10,-level)): #计算Pi
22     pi += tmp
23     b += 2
24     a = -a
25     tmp = a/b
26     i += 2
27     Bar(i)          #调用函数,实时显示计算进度
28
29 print(‘\n{:=^70}‘.format(‘计算完成‘))
30 print(‘\nPi的计算值为:{}‘.format(round(pi*4,level))) #输出计算结果

  4. 图片示例

  由上面3张图片可知,精确到小数点后4位只要14.07秒,精确到小数点后6位也需要124.61秒,而精确到小数点后8位就需要 850 / 8% = 10625秒,约为 177 分钟,也就是2.95个小时。这种方法固然好,但计算起来还是需要很长一段时间的。

《圆周率π》是个奇妙而美丽的存在,它是个无限不循环小数,就像是一种缺陷美,只要你有发现美的眼睛!

2011年,国际数学协会正式宣布,将每年的3月14日设为国际数学节,来源则是中国古代数学家祖冲之的圆周率。

原文地址:https://www.cnblogs.com/bpf-1024/p/10549896.html

时间: 2024-10-31 13:26:23

使用 python 实现π的计算的相关文章

windows下如何快速优雅的使用python的科学计算库?

Python是一种强大的编程语言,其提供了很多用于科学计算的模块,常见的包括numpy.scipy.pandas和matplotlib.要利用Python进行科学计算,就需要一一安装所需的模块,而这些模块可能又依赖于其它的软件包或库,因而安装和使用起来相对麻烦.幸好有人专门在做这一类事情,将科学计算所需要的模块都编译好,然后打包以发行版的形式供用户使用,Anaconda就是其中一个常用的科学计算发行版. 我们从网站(链接1)下载的默认的Anaconda版本已经内置了很多库(链接2),包括nump

使用python做科学计算

这里总结一个guide,主要针对刚开始做数据挖掘和数据分析的同学 说道统计分析工具你一定想到像excel,spss,sas,matlab以及R语言.R语言是这里面比较火的,它的强项是强大的绘图功能以及强大丰富的统计包,通过这个平台你可以了解统计前言的一些实现.它的唯一的问题就是性能问题.所以有时候你需要借用python. 使用R语言你可能需要Rstudio这个工具. python在在任何方面都有相当丰富的模块,科学计算领域也不例外,你可以查看python wiki也可以寻找相关的团体. 你可能会

使用Python做科学计算初探

今天在搞定Django框架的blog搭建后,尝试一下python的科学计算能力. python的科学计算有三剑客:numpy,scipy,matplotlib. numpy负责数值计算,矩阵操作等: scipy负责常见的数学算法,插值.拟合等: matplotlib负责画图. 首先,百度上头三个,依次安装. 可以考虑使用pyhton34/script/easy-install 工具: easy-insatll -m matplotlib; 尝试一下代码,拟合实例: 1 # -*- coding:

使用Python做科学计算初探(转)

今天在搞定Django框架的blog搭建后,尝试一下python的科学计算能力. python的科学计算有三剑客:numpy,scipy,matplotlib. numpy负责数值计算,矩阵操作等: scipy负责常见的数学算法,插值.拟合等: matplotlib负责画图. 首先,百度上头三个,依次安装. 可以考虑使用pyhton34/script/easy-install 工具: easy-insatll -m matplotlib; 尝试一下代码,拟合实例: 1 # -*- coding:

Python下科学计算包numpy和SciPy的安装

转载自:http://blog.sina.com.cn/s/blog_62dfdc740101aoo6.html Python下大多数工具包的安装都很简单,只需要执行 “python setup.py install”命令即可.然而,由于SciPy和numpy这两个科学计算包的依赖关系较多,安装过程较为复杂.网上教程较为混乱,而且照着做基本都不能用.在仔细研读各个包里的README和INSTALL之后,终于安装成功.现记录如下. 系统环境: OS:RedHat5 Python版本:Python2

Python下科学计算包numpy和SciPy的安装【原创】

Python下大多数工具包的安装都很简单,只需要执行 "python setup.py install"命令即可.然而,由于SciPy和numpy这两个科学计算包的依赖关系较多,安装过程较为复杂.网上教程较为混乱,而且照着做基本都不能用.在仔细研读各个包里的README和INSTALL之后,终于安装成功.现记录如下. 系统环境: OS:RedHat5 Python版本:Python2.7.3 gcc版本:4.1.2 各个安装包版本: scipy-0.11.0 numpy-1.6.2 n

Python 之 sklearn 计算 SVM 隶属度

python中的sklean已经集成SVM算法,其中包含fit(), predict()等,我们只要输入训练样本和标记,以及模型参数,就可得到分类的结果. 关于这个的代码实现已有很多,SVC 参数详见: 详址:http://scikit-learn.org/stable/modules/generated/sklearn.svm.SVC.html#sklearn.svm.SVC 但对于libsvm之中实现的隶属度计算仍未找到相似讲解与示例,先给出源码如下. import numpy Data_S

Python的科学计算包matplotlib setup

回想起大学四年 专业一直使用matlab,然而我却没在PC上装成功过,以前懒于思考这种数学工具的作用,直到最近,大学同学研究生要毕业了,几经交流,和自己阅读了一些机器学习的教材之后,发觉科学计算包和画图工具对于某些岗位来说非常的必要,因为使用数学建模而设计各种工业设计图的时候,需要对参数的调制画图观察效果.虽然我没有接触过实际场景,但在概率论的角度看,某些离散集合的数字特征(期望,方差)等,在图像上的表现,也可以借助此科学计算包辅助分析. set up 第一步 到python官网下载一个3.6的

用python脚本来计算100以内奇数或者偶数之和

#!/usr/bin/python#coding:utf-8#while#计算1+2+3+...+100的和#计算1+3+5...+99的和sum=0i=0while i<=99:i=i+1if i%2==0:continuesum=sum+iprint s #计算2+4+6...+100的和sum=0i=0while i<=99:i=i+1if i%2!=0:continues=sum+iprint s 原文地址:http://blog.51cto.com/13587189/2070070

Python数据处理与计算——概述

Python是一种面向对象的,动态的程序设计语言,具有非常简洁而清晰的语法,适合于完成各种高层任务.它既可以用来快速开发程序脚本,也可以用来开发大规模的软件. 随着NumPy.SciPy.Matplotlib.Enthoughtlibrarys等众多程序库的开发,Python越来越适合于做科学计算.绘制高质量的2D和3D图像.与科学计算领域最流行的商业软件MATLAB相比,Python是一门通用的程序设计语言,比MATLAB所采用的脚本语言的应用范围更广泛,有更多的程序库的支持.虽然MATLAB