gpt4 book ai didi

python - 将 Pi 计算到第 N 位

转载 作者:太空宇宙 更新时间:2023-11-03 15:01:00 24 4
gpt4 key购买 nike

我正在尝试输入一个数字并计算该数字输入的 pi。我设法计算 Pi,但是无论我输入什么数字,它仍然会生成相同数量的 Pi 数字。

我有点困惑在什么时候会导致这样做

from math import factorial
from decimal import Decimal, getcontext
# Chudnovsky algorithm for figuring out pi
getcontext().prec=100

pi_input = input('How many digits of pi would you like?')
n = int(pi_input)

def calc(n):
t= Decimal(0)
pi = Decimal(0)
deno= Decimal(0)

for k in range(n):
t = ((-1)**k)*(factorial(6*k))*(13591409+545140134*k)
deno = factorial(3*k)*(factorial(k)**3)*(640320**(3*k))
pi += Decimal(t)/Decimal(deno)
pi = pi * Decimal(12) / Decimal(640320 ** Decimal(1.5))
pi = 1/pi
return pi

print calc(n)

这是我的输出

How many digits of pi would you like? 5 

3.141592653589793238462643383279502884197169399375105820974944592307816346
94690247717268165239156011

最佳答案

使用 Chudnovsky 算法,每次迭代计算会产生大约 14.18 个十进制数字:log10((640320^3)/(24*6*2*6)) ~= 14.18。在此网页所示的 ak/ak-1 公式中可以更清楚地看到这一点:

https://www.craig-wood.com/nick/articles/pi-chudnovsky

对于 n = 5,结果的精度约为 70 位。

关于python - 将 Pi 计算到第 N 位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45113790/

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