복소수는 z = a + b * i 형태로 표현돼요. 여기서:
a는 실수부(실수)이고,
b는 허수부(역시 실수)이며,
i는 i^2 = -1을 만족하는 허수 단위예요.
복소수 z = a + b * i의 켤레복소수는 다음과 같아요:
zc = a - b * i
z의 절댓값(또는 모듈러스)은 다음과 같이 정의해요:
|z| = sqrt(a^2 + b^2)
절댓값의 제곱은 z와 그 켤레복소수 zc의 곱으로 계산해요:
|z|^2 = z * zc = a^2 + b^2
두 복소수 z1 = a + b * i와 z2 = c + d * i의 합은 실수부와 허수부를 각각 더해서 구해요:
z1 + z2 = (a + b * i) + (c + d * i)
= (a + c) + (b + d) * i
두 복소수의 차는 각각의 실수부와 허수부를 빼서 구해요:
z1 - z2 = (a + b * i) - (c + d * i)
= (a - c) + (b - d) * i
두 복소수의 곱은 다음과 같이 정의해요:
z1 * z2 = (a + b * i) * (c + d * i)
= (a * c - b * d) + (b * c + a * d) * i
0이 아닌 복소수의 역수는 다음과 같아요:
1 / z = 1 / (a + b * i)
= a / (a^2 + b^2) - b / (a^2 + b^2) * i
한 복소수를 다른 복소수로 나눈 결과는 다음과 같아요:
z1 / z2 = z1 * (1 / z2)
= (a + b * i) / (c + d * i)
= (a * c + b * d) / (c^2 + d^2) + (b * c - a * d) / (c^2 + d^2) * i
e(자연로그의 밑)를 복소수 지수로 거듭제곱하는 것은 오일러 공식으로 표현할 수 있어요:
e^(a + b * i) = e^a * e^(b * i)
= e^a * (cos(b) + i * sin(b))
복소수에 대한 내장 지원을 사용하지 않아야 하므로, 다음 연산을 구현해야 해요:
Exercism에 가입하고 C++ 트랙을 개념 19개연습 문제 100개, 그리고 실제 사람의 멘토링과 함께 배우고 익혀 보세요. 모두 무료예요.