在误差范围内寻找常数π的近似值 [PYTHON]
我刚开始学习Python,写函数的时候遇到了一些问题。
下面这个是一个无限级数,用来计算π的近似值:
π = 4/1 - 4/3 + 4/5 - 4/7 + 4/9 - 4/11 ...
我想写一个函数,这个函数接收一个浮点数作为参数,这个参数表示允许的误差。然后它会通过逐项计算上面的和,来近似π,直到当前的和和上一个和(少一项的和)之间的差的绝对值不大于这个误差。一旦函数发现这个差小于误差,就应该返回新的和。
下面是这个函数在一些例子上的执行情况:
>>> aprPi(0.01)
3.1465677471829556
>>> aprPi(0.0000001)
3.1415927035898146
我还是不知道怎么计算。有人能帮我吗?
这是我目前写的代码:
def aprPi(err):
first = 4/test(0) - 4/test(1)
second = first + 4/test(2) - 4/test(3)
n=4
while abs(first - second) > err:
first = second
second = second + test(n)
n +=1
return second
def test(n):
sum = 1
for i in range(n):
sum += 2
return sum
谢谢你
1 个回答
1
你可以这样做:
mypie = 0
denominator = 1
sign = 1
while denominator < 100:
mypie = mypie + (4.0 / denominator) * sign
sign = -sign
denominator = denominator + 2