小编Tim*_*Tim的帖子

Python 中的 BBP 算法 - 使用任意精度算术

我正在写一篇关于 pi 计算的学期论文。虽然我已经完成了理论站点,但我现在正在努力用 Python 实现 BBP 算法。

您可以在这里找到 BBP 算法: http://en.wikipedia.org/wiki/Bailey%E2%80%93Borwein%E2%80%93Plouffe_formula

这是我在 Python 中的实现:

from sympy.mpmath import *
pi = mpf(0)
mp.dps = 30;
for n in range(0,500):
    pi = pi + mpf((1/16**n)*(4/(8*n+1)-  2/(8*n+4)-  1/(8*n+5)-  1/(8*n+6)) )


print(pi)
Run Code Online (Sandbox Code Playgroud)

我的问题是,无论我将 k 设置多高,或者将 pi 的小数位数设置多高,我都无法获得比 16 位数字更高的精度。

我使用mpmath来获得更高的精度,因为我之前遇到了一些问题。

我如何改进我的代码,以便获得更多数字?

python algorithm pi arbitrary-precision

5
推荐指数
1
解决办法
1525
查看次数

标签 统计

algorithm ×1

arbitrary-precision ×1

pi ×1

python ×1