C#-189バイト
double f(double x, double y){double r,t,m,c;r=Math.Sqrt(x*x+y*y);t=Math.Atan2(y,x);m=Math.Pow(r,-x)*Math.Exp(y*t-t);c=Math.Cos((1-y)*Math.Log(r)-t*x);return m*(2*c*c<1?Math.Sqrt(1-c*c):c);}
読みやすい:
double f(double x, double y){
double r, t, m, c;
r = Math.Sqrt(x * x + y * y);
t = Math.Atan2(y, x);
m = Math.Pow(r, -x) * Math.Exp(y * t - t);
c = Math.Cos((1 - y) * Math.Log(r) - t * x);
return m * (2 * c * c < 1 ? Math.Sqrt(1 - c * c) : c); }
説明:Complexライブラリーを使用しないことを決定しました。
zzi − z= x + i y= RのE私トン= (r e私トン)(− x + i (1 − y))= r− xri (1 − y)e− x i tet (y− 1 )= r− xet (y− 1 )eI ((1 - Y)ln(r )− x t ) (rとして 私= e私LN(r ))
m個の電子私は場所
m = r− xet (y− 1 )
a = (1 − y)ln(r )− x t
R (zi − z)= m cosa私(zi − z)= m sina
cosa罪a12√2 c2< 1
z= 1e私はπe3 I π私e- πe- 3 πT ∈ [ 0 、2 π)