发布于 2014-11-18 18:49:31
您可以使用普劳夫公式计算pi的第n位二进制数字:

该算法是计算第n位数字(或n附近的几个位数)的最快方法;因此,通过使用多台机器,它是计算从1到n的所有数字的最快方法。此外,在一台机器上,如果从1-n的所有数字的内存大小引起机器上的颠簸,它是计算从1到n的所有数字的最快方法。
在Python中:
>>> from decimal import Decimal as d, getcontext
>>> def bbp(n):
... return sum( 1/d(16**k) \
... * (4/d(8*k+1)-2/d(8*k+4)-1/d(8*k+5)-1/d(8*k+6)) \
... for k in xrange(n))
...
>>> print bbp(50)
3.141592653589793238462643381
>>>
>>> getcontext().prec = 70
>>> print bbp(50)
3.141592653589793238462643383279502884197169399375105820974944592246655因此,您似乎正在寻找Plouffe公式的最快实现。我还没有看到任何基准测试,这取决于您的硬件(特别是GPU)。
https://softwarerecs.stackexchange.com/questions/13982
复制相似问题