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随机生成一个6位的验证码代码分享
Mar 24 Python
使用Protocol Buffers的C语言拓展提速Python程序的示例
Apr 16 Python
python中itertools模块zip_longest函数详解
Jun 12 Python
django多文件上传,form提交,多对多外键保存的实例
Aug 06 Python
解决Django中调用keras的模型出现的问题
Aug 07 Python
详解python statistics模块及函数用法
Oct 27 Python
python实现五子棋游戏(pygame版)
Jan 19 Python
使用Python第三方库pygame写个贪吃蛇小游戏
Mar 06 Python
Python实现列表中非负数保留,负数转化为指定的数值方式
Jun 04 Python
python接口自动化框架实战
Dec 23 Python
基于Pytorch版yolov5的滑块验证码破解思路详解
Feb 25 Python
python分分钟绘制精美地图海报
Feb 15 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
PHP开发规范手册之PHP代码规范详解
2011/01/13 PHP
PHP获取昨天、今天及明天日期的方法
2016/02/03 PHP
php处理静态页面:页面设置缓存时间实例
2017/06/22 PHP
关于PHP虚拟主机概念及如何选择稳定的PHP虚拟主机
2018/11/20 PHP
ExtJs之带图片的下拉列表框插件
2010/03/04 Javascript
javascript是怎么继承的介绍
2012/01/05 Javascript
用JQUERY增删元素的代码
2012/02/14 Javascript
『JavaScript』限制Input只能输入数字实现思路及代码
2013/04/22 Javascript
js中Math之random,round,ceil,floor的用法总结
2013/12/26 Javascript
NodeJs中的VM模块详解
2015/05/06 NodeJs
JS利用cookie记忆当前位置的防刷新导航效果
2015/10/15 Javascript
基于jQuery实现鼠标点击导航菜单水波动画效果附源码下载
2016/01/06 Javascript
AngularJS入门教程之Helloworld示例
2016/12/25 Javascript
jQuery插件JWPlayer视频播放器用法实例分析
2017/01/11 Javascript
Vue.js实现移动端短信验证码功能
2017/03/29 Javascript
jQuery导航条固定定位效果实例代码
2017/05/26 jQuery
jQuery自定义多选下拉框效果
2017/06/19 jQuery
jQuery 实现图片的依次加载图片功能
2017/07/06 jQuery
Vue不能检测到Object/Array更新的情况的解决
2018/06/26 Javascript
jQuery插件实现图片轮播效果
2020/10/19 jQuery
Python3中多线程编程的队列运作示例
2015/04/16 Python
Python通过matplotlib画双层饼图及环形图简单示例
2017/12/15 Python
Selenium定位元素操作示例
2018/08/10 Python
python 根据时间来生成唯一的字符串方法
2019/01/14 Python
巴西24小时在线药房:Drogasil
2020/06/20 全球购物
工程力学专业毕业生求职信
2013/10/06 职场文书
高级销售员求职信
2013/10/25 职场文书
艺术设计专业个人求职信范文
2013/12/11 职场文书
《维生素c的故事》教学反思
2014/02/18 职场文书
篝火晚会主持词
2014/03/25 职场文书
2014党委书记四风对照检查材料思想汇报
2014/09/21 职场文书
小学班主任事迹材料
2014/12/17 职场文书
2014年语文教师工作总结
2014/12/18 职场文书
PostgreSQL将数据加载到buffer cache中操作方法
2021/04/16 PostgreSQL
Django实现翻页的示例代码
2021/05/24 Python
Spark SQL 2.4.8 操作 Dataframe的两种方式
2021/10/16 SQL Server