根据印度数学家 Srinivasa Ramanujan 找到的公式编写一个函数estimatePi()
来估计并返回 Pi 的值。它应该使用 while 循环来计算总和的项,直到最后一项小于 1e-15。估计 Pi 的公式如下: 根据 Ramanujam 的估计
(对不起,我无法上传图片)
def estimatePi():
import math
def factorial(n):
if n == 0:
return 1
else:
return n * factorial(n-1)
k=0
final=0
pi=0
while pi<1e-15:
a=factorial(4*k)
b=(1103+26390*k)
c=factorial(k)
d=c**4
e=396**(4*k)
f=2*math.sqrt(2)/9801
final+=(a*b*f)/(d*e)
k+=1
pi=1/final
return pi
而且,我的问题是: 预期答案是 =3.14159265359 我的答案是 =3.14159273001
我找不到我的错:(。有人可以帮我解决这个问题吗?