如何计算圆周率(π)?

39

如何编写一个函数,以给定的小数位数返回圆周率(π)?

速度不是问题。我一直在查看http://bellard.org/pi/,但我仍然不明白如何获取π的第n位数字。


11
http://en.wikipedia.org/wiki/Pi是一个很好的起点。 - Bill
1
另外,您需要计算圆周率还是仅格式化圆周率? - Bill
你可以看一下Pi计算记录http://bellard.org/pi/pi2700e9/,只是为了好玩。 - LB40
4
在一个交替出现正负项的收敛级数中,该级数会在目标值上下交替变化。因此,你可以知道该值总是在第n项和第n+1项之间。如果第n项和第n+1项的前k个数字相同,则你可以确定目标值的前k位数字。简而言之,当第一次出现前k位数字不再改变时,你就可以得到k位数字的精度。(非交替级数的计算方法有所不同。) - Alan
1
这种类型的更多示例请参见:http://en.wikipedia.org/wiki/Convergent_series - Alan
显示剩余3条评论
11个回答

-1
import math
def pi(x):
    for i in range(1,x):
        print( (360.0*math.tan(math.radians(1/(2*i))))/(1/i))

这样做是通过找到最小的可能角度,然后用该角度计算边数来完成的。

使用三角学来计算边长...你也可以用math.sin代替math.tan


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接