gpt4 book ai didi

python - Python 中的 Chudnovsky 公式

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:10:02 25 4
gpt4 key购买 nike

我正在尝试实现 Chudnovsky 算法来计算圆周率。我正在使用此描述中的公式 https://www.craig-wood.com/nick/articles/pi-chudnovsky/

现在它可以工作了,但是它可以显示的最大位数是3.141592653589793238462643385 - 只有 27 位。

为什么 Python 会限制此脚本中的位数?可能是我以错误的方式使用了Decimal

这是我的代码(已更新):

from decimal import Decimal, getcontext
from math import factorial
import sys

def calculate_pi(max_K, number_of_digits):
getcontext.prec = number_of_digits+2
a_k, b_k, C, a_sum, b_sum = 1, 0, 640320, 1, 0
for k in range(1,max_K):
a_k *= -(Decimal(24)/Decimal(C**3))*Decimal((6*k-5)*(2*k-1)*(6*k-1))/Decimal(k**3)
a_sum += a_k
b_sum += a_k*k


pi = 426880*Decimal(10005).sqrt()/Decimal(13591409*a_sum + 545140134*b_sum)
print str(pi)[:number_of_digits+2]

def main(number_of_digits):
pi = calculate_pi(10000, number_of_digits)


if __name__ == "__main__":
number_of_digits = int(sys.argv[1])
main(number_of_digits)

最佳答案

使用 getcontext().prec = ... 而不是 getcontext.prec = ...

关于python - Python 中的 Chudnovsky 公式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50906200/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com