复数是一个形如a + b * i的数,其中a和b是实数,i满足i^2 = -1。
a称为z的实部,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.
非零复数的倒数是
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)。
实现以下运算:
假设你使用的编程语言没有复数的实现。