在误差范围内寻找常数π的近似值 [PYTHON]

0 投票
1 回答
1466 浏览
提问于 2025-04-17 05:40

我刚开始学习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

撰写回答