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 相关文章推荐
Nginx搭建HTTPS服务器和强制使用HTTPS访问的方法
Aug 16 Python
Python中time模块和datetime模块的用法示例
Feb 28 Python
从零开始学Python第八周:详解网络编程基础(socket)
Dec 14 Python
Python变量和字符串详解
Apr 29 Python
python如何以表格形式打印输出的方法示例
Jun 21 Python
Pandas中DataFrame的分组/分割/合并的实现
Jul 16 Python
Python assert语句的简单使用示例
Jul 28 Python
python创建子类的方法分析
Nov 28 Python
DataFrame.to_excel多次写入不同Sheet的实例
Dec 02 Python
Python安装依赖(包)模块方法详解
Feb 14 Python
python GUI库图形界面开发之PyQt5时间控件QTimer详细使用方法与实例
Feb 26 Python
python向xls写入数据(包括合并,边框,对齐,列宽)
Feb 02 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
Body是什么,该怎么喝出咖啡里的口感
2021/03/03 咖啡文化
PHP 输出简单动态WAP页面
2009/06/09 PHP
php导入excel文件到mysql数据库的方法
2015/01/14 PHP
Symfony2开发之控制器用法实例分析
2016/02/05 PHP
javascript中获取选中对象的类型
2007/04/02 Javascript
lib.utf.js
2007/08/21 Javascript
javascript学习笔记(八) js内置对象
2012/06/19 Javascript
JS的document.all函数使用示例
2013/12/30 Javascript
用JS动态改变表单form里的action值属性的两种方法
2016/05/25 Javascript
Vue.js使用$.ajax和vue-resource实现OAuth的注册、登录、注销和API调用
2017/05/10 Javascript
详解webpack的配置文件entry与output
2017/08/21 Javascript
vue中component组件的props使用详解
2017/09/04 Javascript
用JavaScript做简易的购物车的代码示例
2017/10/20 Javascript
angularJs中跳转到指定的锚点实例($anchorScroll)
2018/08/31 Javascript
Mint UI组件库CheckList使用及踩坑总结
2018/12/20 Javascript
深入了解JavaScript 的 WebAssembly
2019/06/15 Javascript
微信小程序通过js实现瀑布流布局详解
2019/08/28 Javascript
javascript设计模式之装饰者模式
2020/01/30 Javascript
node.js使用yargs处理命令行参数操作示例
2020/02/11 Javascript
[46:28]EG vs Liquid 2019国际邀请赛淘汰赛 败者组 BO3 第二场 8.23
2019/09/05 DOTA
详细分析python3的reduce函数
2017/12/05 Python
python socket网络编程之粘包问题详解
2018/04/28 Python
Python 2/3下处理cjk编码的zip文件的方法
2019/04/26 Python
python实现给微信指定好友定时发送消息
2019/04/29 Python
Python可变和不可变、类的私有属性实例分析
2019/05/31 Python
Crocs波兰官方商店:女鞋、男鞋、童鞋、洞洞鞋
2019/10/08 全球购物
瑞典多品牌连锁店:Johnells
2021/01/13 全球购物
介绍一下MD5加密算法
2016/11/12 面试题
大二自我鉴定范文
2013/10/05 职场文书
《胡杨》教学反思
2014/02/16 职场文书
2014学校庆三八妇女节活动总结
2014/03/01 职场文书
银行党的群众路线教育实践活动对照检查材料
2014/09/25 职场文书
读《茶花女》有感:山茶花的盛开与凋零
2020/01/17 职场文书
springboot新建项目pom.xml文件第一行报错的解决
2022/01/18 Java/Android
Django基础CBV装饰器和中间件
2022/03/22 Python
ant design charts 获取后端接口数据展示
2022/05/25 Javascript