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通过pil为png图片填充上背景颜色的方法
Mar 17 Python
Python使用django框架实现多人在线匿名聊天的小程序
Nov 29 Python
CentOS 6.5中安装Python 3.6.2的方法步骤
Dec 03 Python
对python .txt文件读取及数据处理方法总结
Apr 23 Python
python遍历一个目录,输出所有的文件名的实例
Apr 23 Python
python中单下划线_的常见用法总结
Jul 10 Python
对python mayavi三维绘图的实现详解
Jan 08 Python
Python 隐藏输入密码时屏幕回显的实例
Feb 19 Python
Python中zip()函数的简单用法举例
Sep 02 Python
python实现将一维列表转换为多维列表(numpy+reshape)
Nov 29 Python
基于python3的socket聊天编程
Feb 17 Python
Python类中的装饰器在当前类中的声明与调用详解
Apr 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
Zend的MVC机制使用分析(一)
2013/05/02 PHP
PHP date函数常用时间处理方法
2015/05/11 PHP
php5.2的curl-bug 服务器被php进程卡死问题排查
2016/09/19 PHP
PHP使用Curl实现模拟登录及抓取数据功能示例
2018/04/27 PHP
php微信支付之公众号支付功能
2018/05/30 PHP
详解php中curl返回false的解决办法
2019/03/18 PHP
javascript的函数
2007/01/31 Javascript
让JavaScript的Alert弹出框失效的方法禁止弹出警告框
2014/09/03 Javascript
JavaScript中字面量与函数的基本使用知识
2015/10/20 Javascript
JS深度拷贝Object Array实例分析
2016/03/31 Javascript
jQuery实现邮箱下拉列表自动补全功能
2016/09/08 Javascript
js仿百度音乐全选操作
2017/01/13 Javascript
JS实现简单的天数计算器完整实例
2017/04/28 Javascript
vue.js实现数据动态响应 Vue.set的简单应用
2017/06/15 Javascript
js实现QQ面板拖拽效果(慕课网DOM事件探秘)(全)
2017/09/19 Javascript
angularjs实现柱状图动态加载的示例
2017/12/11 Javascript
解决vue热替换失效的根本原因
2018/09/19 Javascript
解决vue+webpack项目接口跨域出现的问题
2020/08/10 Javascript
在react-antd中弹出层form内容传递给父组件的操作
2020/10/24 Javascript
详细探究Python中的字典容器
2015/04/14 Python
Django实现分页功能
2018/07/02 Python
在Qt中正确的设置窗体的背景图片的几种方法总结
2019/06/19 Python
Python多继承以及MRO顺序的使用
2019/11/11 Python
django框架中间件原理与用法详解
2019/12/10 Python
Python基本类型的连接组合和互相转换方式(13种)
2019/12/16 Python
linux 下python多线程递归复制文件夹及文件夹中的文件
2020/01/02 Python
pytorch 实现模型不同层设置不同的学习率方式
2020/01/06 Python
pycharm的python_stubs问题
2020/04/08 Python
AmazeUI的JS表单验证框架实战示例分享
2020/08/21 HTML / CSS
急诊科护士自我鉴定
2013/10/14 职场文书
《两个铁球同时着地》教学反思
2014/02/13 职场文书
四风剖析查摆对照检查材料思想汇报
2014/09/24 职场文书
不尊敬老师检讨书范文
2014/11/19 职场文书
单位接收函格式
2015/01/30 职场文书
2015年机关纠风工作总结
2015/05/15 职场文书
redis不能访问本机真实ip地址的解决方案
2021/07/07 Redis