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实现360皮肤按钮控件示例
Feb 21 Python
Python中正则表达式的用法实例汇总
Aug 18 Python
python实现忽略大小写对字符串列表排序的方法
Sep 25 Python
Python使用add_subplot与subplot画子图操作示例
Jun 01 Python
python提取xml里面的链接源码详解
Oct 15 Python
Python正则表达式急速入门(小结)
Dec 16 Python
利用Tensorflow构建和训练自己的CNN来做简单的验证码识别方式
Jan 20 Python
浅谈Django中的QueryDict元素为数组的坑
Mar 31 Python
DataFrame 数据合并实现(merge,join,concat)
Jun 14 Python
python Cartopy的基础使用详解
Nov 01 Python
如何通过Python实现RabbitMQ延迟队列
Nov 28 Python
python工具——Mimesis的简单使用教程
Jan 16 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 第二节 数据类型之转换
2012/04/28 PHP
php缓冲 output_buffering的使用详解
2013/06/13 PHP
ASP.NET jQuery 实例12 通过使用jQuery validation插件简单实现用户注册页面验证功能
2012/02/03 Javascript
js函数的引用, 关于内存的开销
2012/09/17 Javascript
js跳转页面方法总结
2014/01/29 Javascript
简单学习JavaScript中的for语句循环结构
2015/11/10 Javascript
Angular中$cacheFactory的作用和用法实例详解
2016/08/19 Javascript
Vue.js中用v-bind绑定class的注意事项
2016/12/13 Javascript
用director.js实现前端路由使用实例
2017/01/27 Javascript
js中变量的连续赋值(实例讲解)
2017/07/08 Javascript
JavaScript解析任意形式的json树型结构展示
2017/07/23 Javascript
Node.js 路由的实现方法
2019/06/05 Javascript
vue.config.js常用配置详解
2019/11/14 Javascript
javascript-hashchange事件和历史状态管理实例分析
2020/04/18 Javascript
vue中的.$mount('#app')手动挂载操作
2020/09/02 Javascript
原生js+css实现tab切换功能
2020/09/17 Javascript
Python的ORM框架SQLObject入门实例
2014/04/28 Python
Python实现TCP/IP协议下的端口转发及重定向示例
2016/06/14 Python
python安装mysql-python简明笔记(ubuntu环境)
2016/06/25 Python
浅谈对yield的初步理解
2017/05/29 Python
Python针对给定列表中元素进行翻转操作的方法分析
2018/04/27 Python
设置python3为默认python的方法
2018/10/31 Python
Python3.6+selenium2.53.6自动化测试_读取excel文件的方法
2019/09/06 Python
Python爬虫库BeautifulSoup的介绍与简单使用实例
2020/01/25 Python
pandas分批读取大数据集教程
2020/06/06 Python
UI自动化定位常用实现方法代码示例
2020/10/27 Python
中国第一家杂志折扣订阅网:杂志铺
2016/08/30 全球购物
美国正宗奢华复古手袋、珠宝及配饰网站:What Goes Around Comes Around
2018/07/21 全球购物
Priority Pass机场贵宾室会籍计划:全球超过1200间机场贵宾室
2018/08/26 全球购物
广州品高软件.net笔面试题目
2012/04/18 面试题
2013年高中生自我评价
2013/10/23 职场文书
特色冷饮店创业计划书
2014/01/28 职场文书
竞选班干部演讲稿
2014/04/24 职场文书
简易离婚协议书范本
2014/10/24 职场文书
学院党的群众路线教育实践活动第一阶段情况汇报
2014/10/25 职场文书
社区文明创建工作总结2015
2015/04/21 职场文书