0

我正在编写 Python 代码来计算 pi 到很多位数,但 python 只允许我数 16 位数。(尽管 12345**12345 计数没有问题,但这不公平。)是否可以更准确地计数?存在一些对象,女巫能够确定更多的数字吗?代码在这里:

def fl(x):
    if x < 2:
        return 1
    else:
        return x*fl(x - 1)
per = int (input("Period: "))
k = 0
x = 1
while k < per:
    x += (fl(6*k)*(13591409 + 545140134*k))/(fl(3*k)*((fl(k))**3)*((-640320)**(k*3)))
    print(x)
    k += 1

print("pi: " + str(426880*(10005**0.5)/x))
4

1 回答 1

1

有三个提供扩展精度浮点的通用库。

十进制包含在所有最新版本的 Python 中。在 Python 3.3 之前,它相对较慢,但在 Python 3.3 中,它是用 C 实现的,速度要快得多。Decimal 具有包含在所有最新版本的 Python 中的优点。

mpmath是一个纯 Python 库,它实现了扩展精度数据类型。mpmath 具有用纯 Python 编写的优点。

gmpy2是 GMP/MPIR、MPFR 和 MPC 扩展精度库的 Python 包装器。gmpy2 对于大多数计算来说是最快的,但在 Mac 或 Linux 系统上安装需要额外的努力。(但是,可以使用 Windows 二进制文件。)

免责声明:我维护 gmpy2 并研究过 mpmath。

于 2013-05-24T16:10:15.393 回答