为什么 pi 近似变化会这样?

问题描述 投票:0回答:1

我正在使用 Python 尝试一些 pi 近似方法,我发现了这个:

pi / 4 = 1/1 - 1/3 + 1/5 - 1/7 + 1/9 - 1/11 ...

我的代码如下所示:

s = 0
for n in range(1, 1_000):
    s += (n % 2 - 0.5) / (n - 0.5)
print(4 * s)

这就是输出:

3.142593654340044

然后我改变了一件事:

print(4 * s - 1 / n)

并且输出不同:

3.141592653339043

看起来减去“1/n”会使近似值更高。迭代次数为 1_000。对于 1_000_000 这样的值,代码也会给出此输出,但对于(例如)1_001,则不会。为什么?

python pi
1个回答
0
投票

没有希望。

数学家们试图以任何方式获得接近 $\pi$ 的实数。

计算机更糟糕。我对 phyton 特别了解,但任何计算机上所有所谓的“真实”值都是由最终的位数表示的。

更糟糕的是,任何计算机都必须对其无法表示的内容进行舍入(除了自然数的任何表示形式,否则会出现溢出)。

举个例子,尝试一除以 3,然后乘以三。一除以三不能存储为数字,也不能永远拼出 1/3=0.3333333...。

因此浮点计算永远是不完美的。

© www.soinside.com 2019 - 2024. All rights reserved.