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通过ElementTree操作XML获取结点读取属性美化XML
Dec 02 Python
python Socket之客户端和服务端握手详解
Sep 18 Python
Python高斯消除矩阵
Jan 02 Python
Python实现求两个数组交集的方法示例
Feb 23 Python
在python 中split()使用多符号分割的例子
Jul 15 Python
简单了解django缓存方式及配置
Jul 19 Python
Python使用itchat模块实现简单的微信控制电脑功能示例
Aug 26 Python
Django 框架模型操作入门教程
Nov 05 Python
python多线程使用方法实例详解
Dec 30 Python
Python常用数据分析模块原理解析
Jul 20 Python
Django如何继承AbstractUser扩展字段
Nov 27 Python
python spilt()分隔字符串的实现示例
May 21 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
解析yahoo邮件用phpmailer发送的实例
2013/06/24 PHP
php实现的redis缓存类定义与使用方法示例
2017/08/09 PHP
PHP框架Laravel中使用UUID实现数据分表操作示例
2018/05/30 PHP
JS中style属性
2006/10/11 Javascript
jquery下将选择的checkbox的id组成字符串的方法
2010/11/28 Javascript
UpdatePanel和Jquery冲突的解决方法
2013/04/01 Javascript
jQuery中对节点进行操作的相关介绍
2013/04/16 Javascript
js的window.showModalDialog及window.open用法实例分析
2015/01/29 Javascript
js+html5获取用户地理位置信息并在Google地图上显示的方法
2015/06/05 Javascript
7个去伪存真的JavaScript面试题
2016/01/07 Javascript
jQuery unbind()方法实例详解
2016/01/19 Javascript
基于JS实现类似支付宝支付密码输入框
2016/09/02 Javascript
常用的js方法合集
2017/03/10 Javascript
js案例之鼠标跟随jquery版(实例讲解)
2017/07/21 jQuery
vuejs 制作背景淡入淡出切换动画的实例
2018/09/01 Javascript
jQuery开发仿QQ版音乐播放器
2020/07/10 jQuery
python实现从web抓取文档的方法
2014/09/26 Python
python判断图片宽度和高度后删除图片的方法
2015/05/22 Python
python实现实时监控文件的方法
2016/08/26 Python
对python指数、幂数拟合curve_fit详解
2018/12/29 Python
Django 接收Post请求数据,并保存到数据库的实现方法
2019/07/12 Python
Django中提供的6种缓存方式详解
2019/08/05 Python
python输入一个水仙花数(三位数) 输出百位十位个位实例
2020/05/03 Python
keras的backend 设置 tensorflow,theano操作
2020/06/30 Python
idea2020手动安装python插件的实现方法
2020/07/17 Python
总结Pyinstaller的坑及终极解决方法(小结)
2020/09/21 Python
全球性的在线购物网站:Zapals
2017/03/22 全球购物
沃达丰英国有限公司:Vodafone英国
2019/04/16 全球购物
高中毕业自我鉴定
2013/12/22 职场文书
大学生饮食配送创业计划书
2014/01/04 职场文书
护理助产毕业生的求职信
2014/03/02 职场文书
老人祝寿主持词
2014/03/28 职场文书
校庆标语集锦
2014/06/25 职场文书
我爱祖国演讲稿
2014/09/02 职场文书
小学运动会加油词
2015/07/18 职场文书
python not运算符的实例用法
2021/06/30 Python