Python实现计算圆周率π的值到任意位的方法示例


Posted in Python onMay 08, 2018

本文实例讲述了Python实现计算圆周率π的值到任意位的方法。分享给大家供大家参考,具体如下:

一、需求分析

输入想要计算到小数点后的位数,计算圆周率π的值。

二、算法:马青公式

π/4=4arctan1/5-arctan1/239

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

Python实现计算圆周率π的值到任意位的方法示例

三、python语言编写出求圆周率到任意位的程序如下:

# -*- coding: utf-8 -*-
from __future__ import division
####################导入时间模块
import time
###############计算当前时间
time1=time.time()
################算法根据马青公式计算圆周率####################
number = int(raw_input('请输入想要计算到小数点后的位数n:'))
# 多计算10位,防止尾数取舍的影响
number1 = number+10
# 算到小数点后number1位
b = 10**number1
# 求含4/5的首项
x1 = b*4//5
# 求含1/239的首项
x2 = b// -239
# 求第一大项
he = x1+x2
#设置下面循环的终点,即共计算n项
number *= 2
#循环初值=3,末值2n,步长=2
for i in xrange(3,number,2):
  # 求每个含1/5的项及符号
  x1 //= -25
  # 求每个含1/239的项及符号
  x2 //= -57121
  # 求两项之和
  x = (x1+x2) // i
  # 求总和
  he += x
# 求出π
pai = he*4
#舍掉后十位
pai //= 10**10
############ 输出圆周率π的值
paistring=str(pai)
result=paistring[0]+str('.')+paistring[1:len(paistring)]
print result
time2=time.time()
print u'总共耗时:' + str(time2 - time1) + 's'

运行结果:

请输入想要计算到小数点后的位数n:20
3.14159265358979323846
总共耗时:9.77699995041s

请输入想要计算到小数点后的位数n:50
3.14159265358979323846264338327950288419716939937510
总共耗时:2.30099987984s

运行截图如下:

Python实现计算圆周率π的值到任意位的方法示例

Python实现计算圆周率π的值到任意位的方法示例

Python 相关文章推荐
跟老齐学Python之类的细节
Oct 13 Python
python实现决策树分类算法
Dec 21 Python
Python实现通过继承覆盖方法示例
Jul 02 Python
Python+OpenCV目标跟踪实现基本的运动检测
Jul 10 Python
tensorflow更改变量的值实例
Jul 30 Python
Jacobi迭代算法的Python实现详解
Jun 29 Python
Pytorch 搭建分类回归神经网络并用GPU进行加速的例子
Jan 09 Python
Python中pyecharts安装及安装失败的解决方法
Feb 18 Python
基于Keras的格式化输出Loss实现方式
Jun 17 Python
如何在python中判断变量的类型
Jul 29 Python
Python实现自动整理文件的脚本
Dec 17 Python
Python 中面向接口编程
May 20 Python
Python实现抓取HTML网页并以PDF文件形式保存的方法
May 08 #Python
Python读写docx文件的方法
May 08 #Python
python docx 中文字体设置的操作方法
May 08 #Python
Python解析并读取PDF文件内容的方法
May 08 #Python
python-docx修改已存在的Word文档的表格的字体格式方法
May 08 #Python
对Python中gensim库word2vec的使用详解
May 08 #Python
用python处理MS Word的实例讲解
May 08 #Python
You might like
Bo-Blog专用的给Windows服务器的IIS Rewrite程序
2007/08/26 PHP
PHP中使用file_get_contents post数据代码例子
2015/02/13 PHP
深入理解php printf() 输出格式化的字符串
2016/05/23 PHP
TP5(thinkPHP5)框架基于ajax与后台数据交互操作简单示例
2018/09/03 PHP
js实现点击注册按钮开始读秒倒计时的小例子
2013/05/11 Javascript
深入浅析JavaScript中prototype和proto的关系
2015/11/15 Javascript
Bootstrap每天必学之缩略图与警示窗
2015/11/29 Javascript
jQuery实现日期联动效果实例
2016/07/26 Javascript
Boostrap栅格系统与自己额外定义的媒体查询的冲突问题
2017/02/19 Javascript
浅谈VueJS SSR 后端绘制内存泄漏的相关解决经验
2018/12/20 Javascript
Vue项目服务器部署之子目录部署方法
2019/05/12 Javascript
微信小程序如何调用新闻接口实现列表循环
2019/07/02 Javascript
JavaScript实现的开关灯泡点击切换特效示例
2019/07/08 Javascript
[46:49]完美世界DOTA2联赛PWL S3 access vs Rebirth 第二场 12.19
2020/12/24 DOTA
对于Python中线程问题的简单讲解
2015/04/03 Python
对于Python编程中一些重用与缩减的建议
2015/04/14 Python
最大K个数问题的Python版解法总结
2016/06/16 Python
pandas数据清洗,排序,索引设置,数据选取方法
2018/05/18 Python
python使用numpy读取、保存txt数据的实例
2018/10/14 Python
python登录WeChat 实现自动回复实例详解
2019/05/28 Python
python调用动态链接库的基本过程详解
2019/06/19 Python
对python中UDP,socket的使用详解
2019/08/22 Python
Python range、enumerate和zip函数用法详解
2019/09/11 Python
Python控制台实现交互式环境执行
2020/06/09 Python
如何真正的了解python装饰器
2020/08/14 Python
美国男士和女士奢侈品折扣手表购物网站:Certified Watch Store
2018/06/13 全球购物
新加坡鲜花速递/新加坡网上花店:Ferns N Petals
2020/08/29 全球购物
高职教师岗位职责
2013/12/24 职场文书
市优秀教师事迹材料
2014/02/05 职场文书
年终总结会主持词
2014/03/25 职场文书
信用社竞聘演讲稿
2014/05/16 职场文书
工作失误检讨书(经典集锦版)
2014/10/17 职场文书
热血教师观后感
2015/06/10 职场文书
党风廉洁教育心得体会
2016/01/20 职场文书
学习习近平主席讲话心得体会
2016/01/20 职场文书
win10重装系统后上不了网怎么办 win10重装系统网络故障的解决办法
2022/07/23 数码科技