Python实现计算圆周率π的值到任意位的方法示例


本文摘自php中文网,作者不言,侵删。

这篇文章主要介绍了Python实现计算圆周率π的值到任意位的方法,简单分析了圆周率的计算原理,并结合实例形式分析了Python计算圆周率的相关操作技巧,需要的朋友可以参考下

本文实例讲述了Python实现计算圆周率π的值到任意位的方法。分享给大家供大家参考,具体如下:

一、需求分析

输入想要计算到小数点后的位数,计算圆周率π的值。

二、算法:马青公式

π/4=4arctan1/5-arctan1/239

这个公式由英国天文学教授约翰·马青于1706年发现。他利用这个公式计算到了100位的圆周率。马青公式每计算一项可以得到1.4位的十进制精度。因为它的计算过程中被乘数和被除数都不大于长整数,所以可以很容易地在计算机上编程实现。

三、python语言编写出求圆周率到任意位的程序如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

# -*- coding: utf-8 -*-

from __future__ import pision

####################导入时间模块

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实现爬虫设置代理IP和伪装成浏览器的方法分享

以上就是Python实现计算圆周率π的值到任意位的方法示例的详细内容,更多文章请关注木庄网络博客!!

相关阅读 >>

Python中出现"indentationerror: unexpected indent"错误的解决

vscode下好用的Python插件及配置_Python

Python数据结构与算法之常见的分配排序法示例【桶排序与基数排序】_Python

Python安装包里idle在哪

Python如何保留2位小数

Python如何判断数据类型

安装完Python怎么打开

Python安装扩展库常用的是什么工具

Python os.access()方法是什么?os.access有什么作用?

Python for循环语句结构与用法实例(图)

更多相关阅读请进入《Python》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...