Python Landau Ramanujan常数计算

Python Landau Ramanujan常数计算,python,algorithm,Python,Algorithm,我试图用这个算法计算L-R常数K: def betaD(x): return ((4**(-x))*(zeta(x,1/4)-zeta(x,3/4))) K = 1 lista = np.arange(1,9,1,dtype=float) for n in lista: K = K * (((1-(1/((2)**(2**n))))*(zeta(2**n)/betaD(2**n)))**(1/(2**(n+1)))) print(K) K = K*(1/n

我试图用这个算法计算L-R常数K:

def betaD(x):
    return ((4**(-x))*(zeta(x,1/4)-zeta(x,3/4)))

K = 1

lista = np.arange(1,9,1,dtype=float)

for n in lista:
    K = K * (((1-(1/((2)**(2**n))))*(zeta(2**n)/betaD(2**n)))**(1/(2**(n+1))))
    print(K)
    
K = K*(1/np.sqrt(2))
(泽塔来自scipy.special)

如你们所见,我只能达到9次迭代,否则K变成=0,我得到:

/home/martina/pymartina/lib/python3.6/site-packages/ipykernel_launcher.py:9: RuntimeWarning: overflow encountered in double_scalars
  if __name__ == '__main__':
/home/martina/pymartina/lib/python3.6/site-packages/ipykernel_launcher.py:2: RuntimeWarning: invalid value encountered in double_scalars
有人能帮忙吗?我希望能够得到更多的迭代次数和精度。谢谢

n10
时,
zeta(2**n,1/4)
是无限的,所以
betaD(2**n)
中有一个错误


decimal
库可以处理数据的大小:

调试完成了吗?你的发现在哪里?谢谢!我无法找出问题出在哪里。现在我将尝试使用十进制库。