求用python计算圆周率小数点后五万位的最快的方法,需要代码,谢谢
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求用python计算圆周率小数点后五万位的最快的方法,需要代码,谢谢相关的知识,希望对你有一定的参考价值。
祖冲之(公元429-500年),字文远,范阳遒(今河北涞水)人,历任南徐州从事史、公府参军等职。他博学多才,在数学、天文历法方面造诣尤深。魏晋时期的数学家刘徽,求出了圆周率值约等于3.1416,这在当时世界上已是一个相当精确的数据。但祖冲之并不满足于前人的成就,他应用刘徽创立的割圆术,在刘徽的计算基础上继续推算,求出了精确到小数点后七位数字的圆周率。 祖冲之求出的圆周率,不足近似值是3.1415926,过剩近似值是3.1415927,用式子表示就是:3.1415926<圆周率<3.1415927。这样,圆周率的精确值就达到了小数点后七位。祖冲之的成果在世界上一直领先了1000年。到了公元15世纪和16世纪,阿拉伯数学家和法国数学家才求出更精确的数值满意望采纳 参考技术A '''计算圆周率任意位数
因为根据马青公式π/4=4arctg1/5-arctg1/239
又因为arctgX=X-(1/3)X^3+(1/5)X^5-(1/7)X^7+……+[(-1)^(n-1)/((2n-1)]*X^(2n-1))
变形得π/4=(4/5-1/239)-1/3(4/5^3-1/239^3)+1/5(4/5^5-1/239^5)……
所以可以用python语言编写出求圆周率到任意位的程序如下:
'''
n = int(input('请键入想要计算到小数点后的位数n:')) #先键入字符串,再转化为整数
w = n+10 #多计算10位,防止尾数取舍的影响
b = 10**w #算到小数点后w位
x1 = b*4//5 #求含4/5的首项
x2 = b// -239 #求含1/239的首项
he = x1+x2 #求第一大项
n *= 2 #设置下面循环的终点,即共计算n项
for i in range(3,n,2): #循环初值=3,末值n,步长=2
x1 //= -25 #求每个含1/5的项及符号
x2 //= -57121 #求每个含1/239的项及符号
x = (x1+x2) // i #求两项之和
he += x #求总和
pai = he*4 #求出π
pai //= 10**10 #舍掉后十位
print(pai)#输出圆周率π的值亲测5万位大约10秒计算完(dell E5450笔记本,i5-5300U+8G RAM+win7 64位+python 3.6 64位版本)。
以上是关于求用python计算圆周率小数点后五万位的最快的方法,需要代码,谢谢的主要内容,如果未能解决你的问题,请参考以下文章