我发现这个问题关闭是因为它不清楚,但这是一个好主意。我会尽我所能把这件事变成一个明确的挑战。
Riemann Zeta函数是一个特殊的函数,它定义为

去复杂的飞机。有许多等价的公式,这使它有趣的代码高尔夫。
编写一个程序,以2个浮点数作为输入(复数的实部和虚部),并在这一点上计算Riemann函数。
+ - * / pow log和实值三角函数(如果你想要积分,使用伽马函数,.必须将此函数定义包含在代码中)以字节为单位的最短代码获胜!
输入:
2,0
输出:
1.6449340668482266,0
输入:
1,1
输出:
0.5821580597520037,-0.9268485643308071
输入:
-1,0
输出:
-0.08333333333333559,0
发布于 2016-03-14 18:58:01
这是http://mathworld.wolfram.com/RiemannZetaFunction.html中等式21的一个简单的实现--它使用Python的约定作为可选参数;如果您想要指定一个精度,可以将第三个参数传递给函数,否则它默认使用1e-24。
import numpy as N
def z(r,i,E=1e-24):
R=0;I=0;n=0;
while(True):
a=0;b=0;m=2**(-n-1)
for k in range(0,n+1):
M=(-1)**k*N.product([x/(x-(n-k))for x in range(n-k+1,n+1)]);A=(k+1)**-r;t=-i*N.log(k+1);a+=M*A*N.cos(t);b+=M*A*N.sin(t)
a*=m;b*=m;R+=a;I+=b;n+=1
if a*a+b*b<E:break
A=2**(1-r);t=-i*N.log(2);a=1-A*N.cos(t);b=-A*N.sin(t);d=a*a+b*b;a=a/d;b=-b/d
print(R*a-I*b,R*b+I*a)https://codegolf.stackexchange.com/questions/75277
复制相似问题