整理的算法模板合集: ACM模板
实际上是一个全新的精炼模板整合计划
复数分为实部和虚部,可以描述为一个二元组 ( x , y ) (x,y) (x,y),表示这个数等于 x + y − 1 x+y\sqrt {-1} x+y−1 。一般用 i i i 表示 − 1 \sqrt{-1} −1 。
由于是个二元组,所以它在理解的时候可以抽象为一个二维向量,分布在平面直角坐标系上。
事实上,它确实也有不少性质和向量相同。
- 复数的模
定义复数的模,为复平面原点到 ( a , b ) (a,b) (a,b)的距离,即 ∣ z ∣ = x 2 + y 2 |z|=\sqrt {x^2+y^2} ∣z∣=x2+y2
定义 z z z 的范数 N ( z ) = ∣ z ∣ 2 = x 2 + y 2 N(z)=|z|^2=x^2+y^2 N(z)=∣z∣2=x2+y2。
- 共轭复数
复数 z = a + b i z=a+bi z=a+bi 的共轭是 z ′ = a − b i z'=a-bi z′=a−bi,记作 z ˉ \bar z zˉ。
性质: z × z ˉ = a 2 + b 2 z\times \bar z=a^2+b^2 z×zˉ=a2+b2, ∣ z ∣ = ∣ z ˉ ∣ |z|=|\bar z| ∣z∣=∣zˉ∣。
- 复数的大小
复数可以看做和向量一样,无法比较大小。
- 复数的加减
对应部 的加减,如 ( a , c ) + ( b , d ) = ( a + b , c + d ) (a,c)+(b,d)=(a+b,c+d) (a,c)+(b,d)=(a+b,c+d)
- 复数乘法
两个复数 z 1 = a 1 + b 1 i , z 2 = a 2 + b 2 i z_1 = a_1 + b_1i,~z_2 = a_2 + b_2 i z1=a1+b1i, z2=a2+b2i 相乘的结果为
z 0 = z 1 × z 2 = ( a 1 + b 1 i ) × ( a 2 + b 2 i ) = a 1 a 2 + a 1 b 2 i + a 2 b 1 i + b 1 b 2 i 2 z_0~=~z_1 \times z_2~=~(a_1 + b_1i) \times (a_2 + b_2i) = a_1a_2 + a_1b_2i + a_2b_1i + b_1b_2i^2 z0 = z1×z2 = (a1+b1i)×(a2+b2i)=a1a2+a1b2i+a2b1i+b1b2i2
又因为 i 2 = − 1 i^2 = -1 i2=−1,所以
z 0 = ( a 1 a 2 − b 1 b 2 ) + ( a 1 b 2 + a 2 b 1 ) i z_0~=~(a_1a_2 - b_1b_2) + (a_1b_2 + a_2b_1) i z0 = (a1a2−b1b2)+(a1b2+a2b1)i
在复平面上, z 1 , z 2 , z 0 z_1,~z_2,~z_0 z1, z2, z0 所对应的幅角 θ 1 , θ 2 , θ 0 \theta_1,~\theta_2,~\theta_0 θ1, θ2, θ0
有关系: θ 0 = θ 1 + θ 2 \theta_0 = \theta_1 + \theta_2 θ0=θ1+θ2
- 复数的除法
对于两个复数 z 1 = a 1 + b 1 i , z 2 = a 2 + b 2 i z_1 = a_1 + b_1i,~z_2 = a_2 + b_2 i z1=a1+b1i, z2=a2+b2i,他们相除的结果为
z 0 = z 1 z 2 z_0 = \frac{z_1}{z_2} z0=z2z1
考虑分数上下同时乘 z 2 ‾ \overline{z_2} z2 ,有
z 0 = z 1 z 2 ‾ a 2 2 + b 2 2 z_0~=~\frac{z_1 \overline {z_2}}{a_2^2 + b_2^2} z0 = a22+b22z1z2
分母是一个实数,可以直接将分子的实部虚部除以分母。
或者也可以展开:
a + c × i b + d × i = ( a + c × i ) ( b − d × i ) ( b + d × i ) ( b − d × i ) = ( a b + c d ) + ( b c − a d ) × i b 2 + d 2 \frac{a+c\times i}{b+d\times i}=\frac{(a+c\times i)(b-d\times i)}{(b+d\times i)(b-d\times i)}=\frac{(ab+cd)+(bc-ad)\times i}{b^2+d^2} b+d×ia+c×i=(b+d×i)(b−d×i)(a+c×i)(b−d×i)=b2+d2(ab+cd)+(bc−ad)×i
即:
( a , b ) ( c , d ) = ( a b + c d b 2 + d 2 , b c − a d b 2 + d 2 ) \frac{(a,b)}{(c,d)}=(\frac{ab+cd}{b^2+d^2},\frac{bc-ad}{b^2+d^2}) (c,d)(a,b)=(b2+d2ab+cd,b2+d2bc−ad)
- 复数指数幂:
有欧拉公式 e i θ = cos θ + i sin θ e^{i\theta} = \cos \theta + i \sin \theta eiθ=cosθ+isinθ其中 e e e 是自然对数的底数
当取
θ
=
π
\theta = \pi
θ=π 时,有
e
i
π
=
cos
π
+
i
sin
π
e^{i\pi} = \cos \pi + i \sin \pi
eiπ=cosπ+isinπ$
又因为 $
cos
π
=
1
,
s
i
n
π
=
0
\cos \pi = 1,~sin \pi = 0
cosπ=1, sinπ=0
所以 e i π = − 1 e^{i\pi} = -1 eiπ=−1
也就是: e i π + 1 = 0 e^{i \pi} + 1=0 eiπ+1=0