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); }
설명 : 복잡한 라이브러리를 사용하지 않기로 결정했습니다.
지지나는 − z= x + i y= r이자형나는 t= ( r이자형나는 t)( − x + i ( 1 − y) )=아르 자형− x아르 자형나는 ( 1 - y)이자형− x i t이자형t ( y− 1 )=아르 자형− x이자형t ( y− 1 )이자형나는 ( ( 1 − y) ln( R ) - (X)의 t ) (같이 아르 자형나는=이자형나는 ln( r ))
이 같게 미디엄이자형내가 어디
m =아르 자형− x이자형t ( y− 1 )
a = ( 1 − y) ln( R ) - (X) t
그때 R (지나는 − z) = m cosㅏ 과 I (지나는 − z) = m 죄ㅏ
최대 절대 값은 코사인ㅏ 과 죄ㅏ 이 용어들은 12√ (따라서 테스트 2씨2< 1).
언급했듯이 복잡한 지수로 올리는 것은 특정 가지 절단을 선택하는 것 (예 : 지= 1 될 수 있었다 이자형나는 π 또는 이자형3 나는 π -이것을 높이기 위해 나는 의 진짜 부분을 제공 이자형− π 또는 이자형- 3 π 그러나 나는 방금 t ∈ [ 0 , 2 π) 질문에 따라.