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使用scrapy解析js示例
Jan 23 Python
Python 元类实例解析
Apr 04 Python
将TensorFlow的模型网络导出为单个文件的方法
Apr 23 Python
Python爬取数据并写入MySQL数据库的实例
Jun 21 Python
python 实现将文件或文件夹用相对路径打包为 tar.gz 文件的方法
Jun 10 Python
Python+OpenCv制作证件图片生成器的操作方法
Aug 21 Python
余弦相似性计算及python代码实现过程解析
Sep 18 Python
pytorch 图像预处理之减去均值,除以方差的实例
Jan 02 Python
python logging模块的使用
Sep 07 Python
教你如何用python操作摄像头以及对视频流的处理
Oct 12 Python
django使用多个数据库的方法实例
Mar 04 Python
python 逐步回归算法
Apr 06 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的String类代码
2010/04/20 PHP
PHP Zip压缩 在线对文件进行压缩的函数
2010/05/26 PHP
PHP函数篇之掌握ord()与chr()函数应用
2011/12/05 PHP
浅析PHP安装扩展mcrypt以及相关依赖项(PHP安装PECL扩展的方法)
2013/07/05 PHP
php通过rmdir删除目录的简单用法
2015/03/18 PHP
php结合ACCESS的跨库查询功能
2015/06/12 PHP
php魔术方法功能与用法实例分析
2016/10/19 PHP
[原创]PHP正则删除html代码中a标签并保留标签内容的方法
2017/05/23 PHP
Add a Formatted Table to a Word Document
2007/06/15 Javascript
FormValidate 表单验证功能代码更新并提供下载
2008/08/23 Javascript
javascript 拖放效果实现代码
2010/01/22 Javascript
基于jquery的复制网页内容到WORD的实现代码
2011/02/16 Javascript
form表单中去掉默认的enter键提交并绑定js方法实现代码
2013/04/01 Javascript
使用requestAnimationFrame实现js动画性能好
2015/08/06 Javascript
JS实现三个层重叠点击互相切换的方法
2015/10/06 Javascript
Javascript自执行匿名函数(function() { })()的原理浅析
2016/05/15 Javascript
js实现统计字符串中特定字符出现个数的方法
2016/08/02 Javascript
HTML页面,测试JS对C函数的调用简单实例
2016/08/09 Javascript
微信小程序 Record API详解及实例代码
2016/09/30 Javascript
JS实现全屏的四种写法
2016/12/30 Javascript
nodejs基于WS模块实现WebSocket聊天功能的方法
2018/01/12 NodeJs
在Vuex使用dispatch和commit来调用mutations的区别详解
2018/09/18 Javascript
vue响应式系统之observe、watcher、dep的源码解析
2019/04/09 Javascript
使用 JavaScript 创建并下载文件(模拟点击)
2019/10/25 Javascript
react-intl实现React国际化多语言的方法
2020/09/27 Javascript
使用python编写简单的小程序编译成exe跑在win10上
2018/01/15 Python
实践Vim配置python开发环境
2018/07/02 Python
python 2.7.13 安装配置方法图文教程
2018/09/18 Python
torchxrayvision包安装过程(附pytorch1.6cpu版安装)
2020/08/26 Python
HTML5 video播放器全屏(fullScreen)方法实例
2015/04/24 HTML / CSS
美国专业汽车音响和移动电子产品零售商:Car Toys
2019/05/13 全球购物
西部世纪面试题
2014/12/05 面试题
培训主管岗位职责
2014/02/01 职场文书
高三政治教学反思
2014/02/06 职场文书
零基础学java之带返回值的方法的定义和调用
2022/04/10 Java/Android
java中为什么说子类的构造方法默认访问的是父类的无参构造方法
2022/04/13 Java/Android