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中的super用法详解
May 28 Python
Python 搭建Web站点之Web服务器网关接口
Nov 06 Python
python中for循环输出列表索引与对应的值方法
Nov 07 Python
python+unittest+requests实现接口自动化的方法
Nov 29 Python
Python小工具之消耗系统指定大小内存的方法
Dec 03 Python
Python可视化mhd格式和raw格式的医学图像并保存的方法
Jan 24 Python
Django中create和save方法的不同
Aug 13 Python
解决Django layui {{}}冲突的问题
Aug 29 Python
如何真正的了解python装饰器
Aug 14 Python
如何使用python自带IDLE的几种方法
Oct 10 Python
python 实现简单的计算器(gui界面)
Nov 11 Python
python脚本框架webpy的url映射详解
Nov 20 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
给海燕B411配件机起死回生配上件
2021/03/02 无线电
PHP 反射机制实现动态代理的代码
2008/10/22 PHP
用php获取本周,上周,本月,上月,本季度日期的代码
2009/08/05 PHP
php笔记之常用文件操作
2010/10/12 PHP
php 目录与文件处理-郑阿奇(续)
2011/07/04 PHP
PHP设计模式之代理模式的深入解析
2013/06/13 PHP
PHP 安全检测代码片段(分享)
2013/07/05 PHP
php教程之phpize使用方法
2014/02/12 PHP
PHP编程计算日期间隔天数的方法
2017/04/26 PHP
PHP多进程之pcntl_fork的实例详解
2017/10/15 PHP
PHP数组常用函数实例小结
2018/08/20 PHP
根据地区不同显示时间的javascript代码
2007/08/13 Javascript
用showModalDialog弹出页面后,提交表单总是弹出一个新窗口
2009/07/18 Javascript
js图片延迟技术一般的思路与示例
2014/03/20 Javascript
jQuery实现HTML5 placeholder效果实例
2014/12/09 Javascript
Ionic如何实现下拉刷新与上拉加载功能
2016/06/03 Javascript
element-ui 的el-button组件中添加自定义颜色和图标的实现方法
2018/10/26 Javascript
[01:13:46]iG vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
[00:16]热血竞技场
2019/03/06 DOTA
[00:08]DOTA2勇士令状等级奖励“天外飞星”
2019/05/24 DOTA
详解如何利用Cython为Python代码加速
2018/01/27 Python
30秒轻松实现TensorFlow物体检测
2018/03/14 Python
Python 读取指定文件夹下的所有图像方法
2018/04/27 Python
对python多线程中Lock()与RLock()锁详解
2019/01/11 Python
pandas读取CSV文件时查看修改各列的数据类型格式
2019/07/07 Python
基于python图像处理API的使用示例
2020/04/03 Python
实例讲解使用SVG制作loading加载动画的方法
2016/04/05 HTML / CSS
Nike墨西哥官网:Nike MX
2020/08/30 全球购物
四年大学自我鉴定
2014/02/17 职场文书
办公室主任竞聘演讲稿
2014/05/15 职场文书
电影复兴之路观后感
2015/06/02 职场文书
党校团干班培训心得体会
2016/01/06 职场文书
CSS实现章节添加自增序号的方法
2021/06/23 HTML / CSS
Mysql超详细讲解死锁问题的理解
2022/04/01 MySQL
python实现双链表
2022/05/25 Python
阿里云服务器(windows)手动部署FTP站点详细教程
2022/08/05 Servers