복소수는 a + b * i 형태의 수예요. 여기서 a와 b는 실수이고, i는 i^2 = -1을 만족해요.
a는 실수부, b는 z의 허수부라고 해요.
a + b * i의 켤레복소수는 a - b * i예요.
복소수 z = a + b * i의 절대값은 실수 |z| = sqrt(a^2 + b^2)예요. 절대값의 제곱 |z|^2은 z에 그 켤레복소수를 곱한 결과예요.
두 복소수의 합과 차는 각각의 실수부와 허수부를 따로 더하거나 빼서 구해요:
(a + i * b) + (c + i * d) = (a + c) + (b + d) * i,
(a + i * b) - (c + i * d) = (a - c) + (b - d) * i.
곱셈 결과는 정의에 따라
(a + i * b) * (c + i * d) = (a * c - b * d) + (b * c + a * d) * i예요.
0이 아닌 복소수의 역수는
1 / (a + i * b) = a/(a^2 + b^2) - b/(a^2 + b^2) * i예요.
복소수 a + i * b를 다른 복소수 c + i * d로 나누면 다음과 같아요:
(a + i * b) / (c + i * d) = (a * c + b * d)/(c^2 + d^2) + (b * c - a * d)/(c^2 + d^2) * i.
e를 복소수 지수로 거듭제곱하는 것은 e^(a + i * b) = e^a * e^(i * b)로 나타낼 수 있어요. 이 식의 마지막 항은 오일러의 공식 e^(i * b) = cos(b) + i * sin(b)로 주어져요.
다음 연산을 구현해요:
사용하는 프로그래밍 언어에 복소수 구현이 없다고 가정해요.
Exercism에 가입하고 Haskell 트랙을 연습 문제 107개, 그리고 실제 사람의 멘토링과 함께 배우고 익혀 보세요. 모두 무료예요.