pi/2 = 1 + 1/3 + (1*2) / (3*5) + (1*2*3) / (3*5*7) + ...
好的,让我们再试一次。
我需要编写一个函数,它将最大误差作为 pi 的值的参数,并返回计算出的 pi 值以及到达该点所需的迭代次数。我不能使用递归算法。
到目前为止,我有:
def piEuler (x):
count = 0.0
approx = 0.0
approx2 = 1.0
error = math.pi/2 - approx2
while error > x:
count = count + 1
approx3 = approx + approx2
error = math.pi/2 - approx3
#print error
approx = approx + approx2
approx2 = approx2 * count/(count + 2)
#print approx2
final = math.pi - error
return final, count
问题是程序返回负值。误差应该收敛到零。我需要能够从 pi 的接受值中减去我的错误,以从系列中获得近似值。我究竟做错了什么?