大家以我为戒 千万不要这么学 oi (
todolist 会越鸽越长的
高代那部分莫名其妙写了一大堆 其实我写完之后也没复习过几遍。。
而且千万不要抄看起来很厉害实际上也很厉害的东西抄爽了,,
更不要太纠结于各种各样用不到的新定义和名字 这些可以有需要的时候再顺其自然
这篇博文在一些中等难度的知识点上可能偶尔会有那么一些十分集中出现的干货
水货很多
可以用来锻炼自己获取有效信息的能力(
下面就全部是我以前写的了,也没有什么修改
而且我的电脑带不动这么长的博客(
三元环
干货 https://www.cnblogs.com/ppprseter/p/10139342.html
数论函数从入门到min25 https://blog.csdn.net/zhouyuheng2003/article/details/84798775
基础数论 总结 https://www.cnblogs.com/meowww/p/6400841.html
http://www.cppblog.com/menjitianya/archive/2015/12/02/212395.html
https://www.cnblogs.com/gzy-cjoier/p/8206944.html
https://www.cnblogs.com/gzy-cjoier/p/9741950.html
https://www.luogu.org/blog/hdxrie/yuan-gen
https://blog.csdn.net/myjs999/article/details/81133555
https://blog.csdn.net/WAautomaton/article/details/82667522
https://blog.csdn.net/qq_33184171/article/details/51488462
https://blog.csdn.net/ez_2016gdgzoi471/article/details/81416333
https://blog.csdn.net/zhulinzhulinlin/article/details/78649153
https://blog.csdn.net/werkeytom_ftd/article/details/74701513
自适应simpson
复化cotes simpson https://blog.csdn.net/Alearn_/article/details/80461258
伯努利数
自然数幂和&子集和 https://www.cnblogs.com/ppprseter/p/10139342.html
k次幂和
https://www.cnblogs.com/gzy-cjoier/p/9362368.html
https://blog.csdn.net/my_sunshine26/article/details/72772637
https://www.cnblogs.com/ppprseter/p/10017738.html
Cohen-Sutherland
反素数、原根、指标、BSGS(被埋了。。。)
高斯消元、线性基(也被埋了。。。)
牛顿迭代&stirling近似&递推数列循环节(都被埋了)
欧拉函数那里,补上几道题。一定要带仪仗队(
放在三角函数那里当练习题 https://ac.2333.moe/Problem/view.xhtml?id=1668
计算几何poj1039
真实数竞(数论+整除)https://blog.csdn.net/u014609452/article/details/72835428
特征根法(在矩阵快速幂下边)https://blog.csdn.net/qq_40515553/article/details/80418944
csdn katex https://katex.org/docs/supported.html
fibonacci 综合题 https://blog.csdn.net/qq_35950004/article/details/79359284
https://blog.csdn.net/qq_35950004/article/details/79851479 线段交点模板
状态分块优化转移 https://blog.csdn.net/qq_35950004/article/details/80792343
牛逼依赖背包+单调性 https://blog.csdn.net/qq_35950004/article/details/83793032
acm math https://blog.csdn.net/xh_reventon/article/details/25662705
莫反简化 https://www.cnblogs.com/chenyang920/p/4811995.html
因为我比较菜,文中可能出现一些错误?(
这篇博客是一边学习+复习的过程中写的,所以一些地方可能会略去某些内容。
文中一些部分会有Problem List,其中对题目的描述格式大致如下:
Difficulty… Problem Id&Link(Solution)… Note
其中的备注(Note)部分的内容一般是写这道题目用到的算法、思想一类;
但是为了防止剧透,可能会在里面加一些模糊的甚至带有误导性的备注。
不过一定还是跟题目相关的。会备注的都是解这道题目应该掌握/建议掌握的知识。
当然,不是要用到的都会标记上去。只会根据具体情况标记一部分。
比如说,我不可能在后面的组合计数那里特地标一下要会逆元。
我也不会在莫比乌斯反演那些地方跟你说要会 μ \mu μ(emmm)
- 三角函数 -
高中数学课本很好的,相信我(
- 数列求和 -
等差数列通项
a
n
=
a
1
+
(
n
−
1
)
d
a_n=a_1+(n-1)d
an=a1+(n−1)d
等差数列求和
∑
i
=
1
n
a
i
=
a
1
⋅
n
+
n
(
n
−
1
)
2
⋅
d
\displaystyle\sum\limits_{i=1}^n a_i=a_1\cdot n+\dfrac{n(n-1)}{2}\cdot d
i=1∑nai=a1⋅n+2n(n−1)⋅d
=
(
a
1
+
a
n
)
n
2
=\dfrac{(a_1+a_n)n}{2}
=2(a1+an)n
等比数列通项
a
n
=
a
1
q
n
−
1
a_n=a_1q^{n-1}
an=a1qn−1
等比数列求和
∑
i
=
1
n
a
i
=
a
1
⋅
1
−
q
n
1
−
q
=
a
1
−
a
n
⋅
q
1
−
q
\displaystyle\sum\limits_{i=1}^n a_i=a_1\cdot\dfrac{1-q^n}{1-q}=\dfrac{a_1-a_n\cdot q}{1-q}
i=1∑nai=a1⋅1−q1−qn=1−qa1−an⋅q
- 数列通项:特征根法
http://acm.hdu.edu.cn/showproblem.php?pid=4565
- 数论函数 -
我们定义域为
N
∗
\N^*
N∗,陪域为
C
\mathbb C
C(复数域)的函数为数论函数。
每个数论函数都可以视为复数的序列。
对数论函数
f
(
x
)
f(x)
f(x),
∀
a
,
b
∈
N
∗
\mathbf\forall a,b\in\N^*
∀a,b∈N∗、
(
a
,
b
)
=
1
(a,b)=1
(a,b)=1,若
f
(
a
b
)
=
f
(
a
)
f
(
b
)
f(ab)=f(a)f(b)
f(ab)=f(a)f(b),称
f
(
x
)
f(x)
f(x)为积性函数。
如果
∀
a
,
b
∈
N
∗
\mathbf\forall a,b\in\N^*
∀a,b∈N∗,
f
(
a
b
)
=
f
(
a
)
f
(
b
)
f(ab)=f(a)f(b)
f(ab)=f(a)f(b),称
f
(
x
)
f(x)
f(x)为完全积性函数。
加性函数:
∀
a
,
b
∈
N
∗
\mathbf\forall a,b\in\N^*
∀a,b∈N∗、
(
a
,
b
)
=
1
(a,b)=1
(a,b)=1,
f
(
a
b
)
=
f
(
a
)
+
f
(
b
)
f(ab)=f(a)+f(b)
f(ab)=f(a)+f(b)
完全加性函数:
∀
a
,
b
∈
N
∗
\mathbf\forall a,b\in\N^*
∀a,b∈N∗,
f
(
a
b
)
=
f
(
a
)
+
f
(
b
)
f(ab)=f(a)+f(b)
f(ab)=f(a)+f(b)
对于数论函数集,以狄利克雷卷积为乘法,一般函数加法作为加法,可以得到一个Abel环。
积性函数+唯一分解定理有一个性质: f ( n ) = ∏ i = 1 ω ( n ) f ( p i a i ) f(n)=\large{\prod\limits_{i=1}^{\omega(n)}}\normalsize{ f(p_i^{a_i})} f(n)=i=1∏ω(n)f(piai)
- 常见积性函数 -
PS:Iverson bracket
[ P ] = { 1 I f P i s t r u e 0 O t h e r w i s e . \mathcal{[P]=\begin{cases}1\qquad\mathcal{If\;P\;is\;true}\\0\qquad \mathcal{Otherwise.}\end{cases}} [P]={1IfPistrue0Otherwise.
PS:记min和max我好像没有翻到什么统一的标准?暂且这么记吧:
min l i m i t s { e l e m e n t s } \min\limits_{limits}\{elements\} limitsmin{elements}
max l i m i t s { e l e m e n t s } \max\limits_{limits}\{elements\} limitsmax{elements}
min l i m i t s e l e m e n t s \min\limits_{limits}{elements} limitsminelements
max l i m i t s e l e m e n t s \max\limits_{limits}{elements} limitsmaxelements有时候可能会变成其他形式?总之能够看起来(大概)好看就行(
首先,对于 n n n,素因子数 ω ( n ) = ∑ d ∣ n [ ϕ ( d ) = d − 1 ] \omega(n)=\sum\limits_{d|n}\small[\phi(d)=d-1] ω(n)=d∣n∑[ϕ(d)=d−1]。这个不是积性函数;它是加性函数。
对于 n = ∏ i = 1 ω ( n ) p i a i n=\prod\limits_{i=1}^{\omega(n)}p_i^{a_i} n=i=1∏ω(n)piai( p i p_i pi为质数):
加性函数
素因子数(不计重数) ω ( n ) = ∑ d ∣ n [ ϕ ( d ) = d − 1 ] \omega(n)=\sum\limits_{d|n}\small[\phi(d)=d-1] ω(n)=d∣n∑[ϕ(d)=d−1]
素因子和(不计重数)完全加性函数
素因子数(计算重数) Ω ( n ) = ∑ d ∣ n a i [ ϕ ( d ) = d − 1 ] \Omega(n)=\sum\limits_{d|n}a_i\small[\phi(d)=d-1] Ω(n)=d∣n∑ai[ϕ(d)=d−1]
素因子和(计算重数)完全积性函数
1 ( n ) = 1 \mathbf1(n)=1 1(n)=1,这是一个常函数。
单位函数 I d ( n ) = n \mathbf{Id}(n)=n Id(n)=n
幂函数 I d k ( n ) = n k \mathbf{Id^k}(n)=n^k Idk(n)=nk
D i r c h l e t \frak{Dirchlet} Dirchlet卷积的单位元 ϵ ( n ) = [ n = 1 ] \epsilon(n)=[n=1] ϵ(n)=[n=1]积性函数
g c d ( n , k ) gcd(n,k) gcd(n,k),当 n n n为常数时;
欧拉函数 ϕ ( n ) = n ∏ i = 1 ω ( n ) ( 1 − 1 p i ) \phi(n)=n\prod\limits_{i=1}^{\omega(n)}(1-\frac{1}{p_i}) ϕ(n)=ni=1∏ω(n)(1−pi1)
正因子数 d ( n ) = ∑ d ∣ n 1 \mathbf d(n)=\sum\limits_{d|n}1 d(n)=d∣n∑1
正因子和 σ ( n ) = ∑ d ∣ n d \sigma(n)=\sum\limits_{d|n}d σ(n)=d∣n∑d
因子函数 σ k ( n ) = ∑ d ∣ n d k \sigma_k(n)=\sum\limits_{d|n}d^k σk(n)=d∣n∑dk其中 k ∈ C k\in\mathbb C k∈C
我也不知道它叫什么但是 γ ( n ) = ( − 1 ) ω ( n ) \gamma(n)=(-1)^{\omega(n)} γ(n)=(−1)ω(n)
刘维尔函数 λ L i o u v i l l e ( n ) = ( − 1 ) Ω ( n ) \lambda_{\frak{Liouville}}{(n)}=(-1)^{\Omega(n)} λLiouville(n)=(−1)Ω(n)
莫比乌斯函数【证明】
μ ( n ) = δ ω ( n ) Ω ( n ) λ n = [ ( max 1 ≤ i ≤ ω ( n ) a i ) ≤ 1 ] ( − 1 ) ω ( n ) = { 1 n = 1 ( − 1 ) k n = ∏ i = 1 ω ( n ) p i 0 O t h e r w i s e . \mu(n)=\delta_{\omega(n)\Omega(n)}\lambda{n}=\left[\left(\max\limits_{1\le i\le\omega(n)}a_i\right)\le1\right](-1)^{\omega(n)}=\begin{cases}\begin{gathered}1&n=1\\(-1)^k&n=\prod\limits_{i=1}^{\omega(n)}p_i\\0&\mathcal{Otherwise.}\end{gathered}\end{cases} μ(n)=δω(n)Ω(n)λn=[(1≤i≤ω(n)maxai)≤1](−1)ω(n)=⎩⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎧1(−1)k0n=1n=i=1∏ω(n)piOtherwise.卡迈克尔函数 λ C a r m i c h a e l ( n ) = { 1 2 ϕ ( n ) n = 2 k ∧ n , k ∈ N ∗ ∧ k ≥ 3 ϕ ( n ) O t h e r w i s e . \lambda_{\frak{Carmichael}}(n)=\begin{cases}\begin{gathered}\frac{1}{2}\phi(n)&n=2^k\land n,k\in\N^*\land k\ge3\\\phi(n)&\mathcal{Otherwise.}\end{gathered}\end{cases} λCarmichael(n)=⎩⎨⎧21ϕ(n)ϕ(n)n=2k∧n,k∈N∗∧k≥3Otherwise.
性质
λ L i o u v i l l e ( n ) = ∑ d 2 ∣ n μ ( n d 2 ) \lambda_{\frak{Liouville}}{(n)}=\displaystyle\sum\limits_{d^{^{_\mathcal2}}|n}\mu\left(\frac{ n}{d^{^{_\mathcal2}}}\right) λLiouville(n)=d2∣n∑μ(d2n)
1 ∗ μ = μ ∗ 1 = ϵ 1*\mu=\mu*1=\epsilon 1∗μ=μ∗1=ϵ
1 ∗ ϕ = ϕ ∗ 1 = i d 1*\phi=\phi*1=id 1∗ϕ=ϕ∗1=id
- 除法分块 -
给定 n ∈ N ∗ n\in\N^* n∈N∗, ∀ m ∈ N ∗ \mathbf\forall m\in\N^* ∀m∈N∗, ⌊ n m ⌋ \left\lfloor\dfrac{n}{m}\right\rfloor ⌊mn⌋的取值只有 O ( n ) O(\sqrt{n}) O(n)种。
证明以 n \sqrt{n} n为界分类讨论即可,略。
- 素数定理 -
记小于
x
x
x的素数个数
π
(
x
)
\pi(x)
π(x)。
lim
x
→
+
∞
π
(
x
)
⋅
ln
(
x
)
x
=
1
\lim\limits_{x\to+\infty}\cfrac{\pi(x)\cdot\ln(x)}{x}=1
x→+∞limxπ(x)⋅ln(x)=1
也即:
lim
x
→
+
∞
π
(
x
)
=
x
ln
(
x
)
\lim\limits_{x\to+\infty}\pi(x)=\cfrac{x}{\ln(x)}
x→+∞limπ(x)=ln(x)x
可以认为
π
(
x
)
=
O
(
x
ln
x
)
\pi(x)=O\left(\dfrac{x}{\ln x}\right)
π(x)=O(lnxx)
- 唯一分解定理(算数基本定理) -
令 ω ( n ) \omega(n) ω(n)表示 n n n的质因子个数。(规定 ω ( 1 ) = 0 \omega(1)=0 ω(1)=0)
∀
n
∈
N
∗
,
n
=
∏
i
=
1
ω
(
n
)
p
i
a
i
\mathbf\forall n\in\N^*,\displaystyle{n=\prod\limits_{i=1}^{\omega(n)}}{p_{_i}}^{a_{_i}}
∀n∈N∗,n=i=1∏ω(n)piai
重要推论
Ⅰ ∀ n ∈ N ∗ \mathbf\forall n\in\N^* ∀n∈N∗且 n > 1 n>1 n>1, n = ∏ i = 1 ω ( n ) p i a i \displaystyle{n=\prod\limits_{i=1}^{\omega(n)}}{p_{_i}}^{a_{_i}} n=i=1∏ω(n)piai,其正因数个数为: d ( n ) = ∏ i = 1 ω ( n ) ( 1 + a i ) \mathbf d(n)=\displaystyle\prod\limits_{i=1}^{\omega(n)}(1+a_{_i}) d(n)=i=1∏ω(n)(1+ai)
Ⅱ (因数和公式) ∀ n ∈ N ∗ \mathbf\forall n\in\N^* ∀n∈N∗且 n > 1 n>1 n>1, n = ∏ i = 1 ω ( n ) p i a i \displaystyle{n=\prod\limits_{i=1}^{\omega(n)}}{p_{_i}}^{a_{_i}} n=i=1∏ω(n)piai,其正因数和 σ ( n ) = ∏ i = 1 ω ( n ) ∑ j = 0 a i p i j \mathcal{\sigma(n)=\displaystyle\prod\limits_{i=1}^{\omega(n)}\sum\limits_{j=0}^{a_{_i}}{p_{_i}}^j} σ(n)=i=1∏ω(n)j=0∑aipij
Ⅲ a b = ( a , b ) [ a , b ] ab=(a,b)[a,b] ab=(a,b)[a,b]。其中 ( a , b ) (a,b) (a,b)表示 a a a和 b b b的最大公约数, [ a , b ] [a,b] [a,b]表示 a a a和 b b b的最小公倍数。
Ⅳ 素数个数无限。
Problem List
★★☆☆☆☆☆☆☆☆ hdu4497 唯一分解定理+容斥原理
★★☆☆☆☆☆☆☆☆ hdu1852 唯一分解定理+逆元+快速幂
- 最大公约数(GCD)&最小公倍数(LCM) -
定义相信大家都知道(
记号:
g
c
d
(
a
,
b
)
gcd(a,b)
gcd(a,b)记作
(
a
,
b
)
(a,b)
(a,b),
l
c
m
(
a
,
b
)
lcm(a,b)
lcm(a,b)记作
[
a
,
b
]
[a,b]
[a,b]
后面可能会混用(?
唯一分解定理可以推出它们的指数最值表示法:
由 a = ∏ i = 1 ω ( a ) p i a i \displaystyle{a=\prod\limits_{i=1}^{\omega(a)}}{p_{_i}}^{a_{_i}} a=i=1∏ω(a)piai, b = ∏ i = 1 ω ( b ) p i b i \displaystyle{b=\prod\limits_{i=1}^{\omega(b)}}{p_{_i}}^{b_{_i}} b=i=1∏ω(b)pibi有
( a , b ) = ∏ i = 1 min { ω ( a ) , ω ( b ) } p i min { a i , b i } \displaystyle{(a,b)=\prod\limits_{i=1}^{\min\{\omega(a),\omega(b)\}}}{p_{_i}}^{\min\{a_{_i},b_{_i}\}} (a,b)=i=1∏min{ω(a),ω(b)}pimin{ai,bi}
[ a , b ] = ∏ i = 1 max { ω ( a ) , ω ( b ) } p i max { a i , b i } \displaystyle{[a,b]=\prod\limits_{i=1}^{\max\{\omega(a),\omega(b)\}}}{p_{_i}}^{\max\{a_{_i},b_{_i}\}} [a,b]=i=1∏max{ω(a),ω(b)}pimax{ai,bi}
一个性质:
(
n
,
m
)
=
1
⇔
(
n
,
n
−
m
)
=
1
(n,m)=1\Leftrightarrow(n,n-m)=1
(n,m)=1⇔(n,n−m)=1(
n
>
m
n>m
n>m)。跟
(
n
m
)
=
(
n
n
−
m
)
\binom{n}{m}=\binom{n}{n-m}
(mn)=(n−mn)形式比较像?
证明很显然。
推论:与n互质的数的平均数是n/2,和为φ(n)·n/2。
- 快速幂 -
把指数二进制拆分,取base倍增
就可以logn啦。不多讲(
- 裴蜀定理 -
对于
∀
a
,
b
∈
Z
\mathbf\forall a,b\in\Z
∀a,b∈Z,
∀
x
,
y
∈
Z
\mathbf\forall x,y\in\Z
∀x,y∈Z有
(
a
,
b
)
∣
(
a
x
+
b
y
)
(a,b)|(ax+by)
(a,b)∣(ax+by)。
其每组解
x
,
y
x,y
x,y称为裴蜀数。
特别地:一定存在 x , y ∈ Z x,y\in\Z x,y∈Z满足 a x + b y = ( a , b ) ax+by=(a,b) ax+by=(a,b)。
证明:
设 μ = g c d ( a , b ) \mu=gcd(a,b) μ=gcd(a,b),则 μ ∣ a , μ ∣ b \mu|a,\mu|b μ∣a,μ∣b, ∀ x , y ∈ Z \mathbf\forall x,y\in\Z ∀x,y∈Z有 μ ∣ ( a x + b y ) \mu|(ax+by) μ∣(ax+by)。设 s = min a x + b y > 0 ( a x + b y ) s=\min\limits_{ax+by>0}{(ax+by)} s=ax+by>0min(ax+by)则 μ ∣ s \mu|s μ∣s。
令 q = ⌊ a s ⌋ , r = a m o d s = a − q ( a x + b y ) = a ( 1 − q x ) + b q y q=\left\lfloor\dfrac{a}{s}\right\rfloor,r=a\mod s=a-q(ax+by)=a(1-qx)+bqy q=⌊sa⌋,r=amods=a−q(ax+by)=a(1−qx)+bqy,
则: r r r为 a , b a,b a,b的线性组合, r ∈ N r\in\N r∈N。且 s s s是 a , b a,b a,b线性组合的最小正值, 0 ≤ r < s 0\le r<s 0≤r<s,则 r = 0 r=0 r=0。
那么 s ∣ a , s ∣ b , s ∣ μ s|a,s|b,s|\mu s∣a,s∣b,s∣μ,即 s = μ s=\mu s=μ。
实际上(就理解来说)是很显然的,设 d = ( a , b ) d=(a,b) d=(a,b), a = A d , b = B d a=Ad,b=Bd a=Ad,b=Bd( A , B ∈ Z A,B\in\Z A,B∈Z)
又 x , y ∈ Z x,y\in\Z x,y∈Z于是 ( a x + b y ) = C d (ax+by)=Cd (ax+by)=Cd( C ∈ Z C\in\Z C∈Z)那么 d ∣ ( a x + b y ) d|(ax+by) d∣(ax+by)即 ( a , b ) ∣ ( a x + b y ) (a,b)|(ax+by) (a,b)∣(ax+by)
另一个形式: a x + b y = m ax+by=m ax+by=m有解当且仅当 m = k ( a , b ) m=k(a,b) m=k(a,b), k ∈ Z k\in\Z k∈Z。
重要推论: a , b a,b a,b互质的充要条件是 ∃ x , y ∈ Z \mathbf\exists x,y\in\Z ∃x,y∈Z使 a x + b y = 1 ax+by=1 ax+by=1。
不必了解的是,裴蜀定理可以推广到任意的主理想环上。
对主理想环 A A A、环中元素 a , b a,b a,b和它们的一个最大公约元 d d d,存在环中元素 x , y x,y x,y使 a x + b y = d ax+by=d ax+by=d。
这是因为在主理想环中, a a a和 b b b的最大公约元被定义为理想 A a + A b Aa+Ab Aa+Ab的生成元。
改成 n n n元一次不定方程,裴蜀定理依然成立。
Problem List
★☆☆☆☆☆☆☆☆☆ bzoj1441
- 欧几里得算法(GCD) -
更相减损术
更相减损一开始是为了约分被设计出来的。原理当然是求 g c d gcd gcd啦,然后同除。
分为两步,第一步是同约去
2
n
2^n
2n,第二步才是更相减损。就是大数减小数,直到得到
0
0
0。
然后减出
0
0
0的那个数乘上
2
n
2^n
2n就是
g
c
d
gcd
gcd。
具体的证明之后再说。下面看一个更相减损约分的例子。
e g . eg. eg. 化简 799 1081 \dfrac{799}{1081} 1081799。
① 1081 − 799 = 282 1081-799=282 1081−799=282
② 799 − 282 = 517 799-282=517 799−282=517
③ 517 − 282 = 235 517-282=235 517−282=235
④ 282 − 235 = 47 282-235=47 282−235=47
⑤ 235 − 47 = 188 235-47=188 235−47=188
⑥ 188 − 47 = 141 188-47=141 188−47=141
⑦ 141 − 47 = 94 141-47=94 141−47=94
⑧ 94 − 47 = 47 94-47=47 94−47=47
⑩ 799 1081 = 799 47 1081 47 = 17 23 \dfrac{799}{1081}=\dfrac{\frac{799}{47}}{\frac{1081}{47}}=\dfrac{17}{23} 1081799=47108147799=2317
很显然中间有好几步可以合并,也不难实现。
辗转相除法(欧几里德算法)
更相减损明显有一些步骤可以合并。
那么合并完长什么样?
1081 % 799 = 282 1081\%799=282 1081%799=282
799 % 282 = 235 799\%282=235 799%282=235
282 % 235 = 47 282\%235=47 282%235=47
235 % 47 = 0 235\%47=0 235%47=0
至少看起来好像变快了?——这就是“辗转相除法”。
其复杂度稳定在
O
(
log
{
max
(
a
,
b
)
}
)
O(\log\{\max(a,b)\})
O(log{max(a,b)}),而更相减损的复杂度可能退化到
O
(
max
{
a
,
b
}
)
O(\max\{a,b\})
O(max{a,b})
对比一下暴力枚举的复杂度
O
(
min
{
a
,
b
}
)
O(\min\{a,b\})
O(min{a,b}),更相减损一旦退化那就爆炸了。
也可以看出更相减损实际上是辗转相除的一个特例。
证明辗转相除,只需要证明 ( a , b ) = ( a − n b , b ) (a,b)=(a-nb,b) (a,b)=(a−nb,b)
设 μ = ( a , b ) \mu=(a,b) μ=(a,b)。
那么 a = μ A , b = μ B a=\mu A,b=\mu B a=μA,b=μB, ( A , B ) = 1 (A,B)=1 (A,B)=1。
由裴蜀定理的重要推论,存在 x , y ∈ Z x,y\in\Z x,y∈Z使 A x + B y = 1 Ax+By=1 Ax+By=1
则 a − n b = μ ( A − n B ) a-nb=\mu(A-nB) a−nb=μ(A−nB);且 x ( A − n B ) + ( n x + y ) B = A x + B y = 1 x(A-nB)+(nx+y)B=Ax+By=1 x(A−nB)+(nx+y)B=Ax+By=1,
即 ( A − n B , B ) = 1 (A-nB,B)=1 (A−nB,B)=1。又因为 ∀ c , d , k ∈ N ∗ \mathbf\forall c,d,k\in\N^* ∀c,d,k∈N∗有 ( c , d ) = 1 ⇒ ( k c , k d ) = k (c,d)=1\Rightarrow (kc,kd)=k (c,d)=1⇒(kc,kd)=k:
有 ( a − n b , b ) = μ = ( a , b ) (a-nb,b)=\mu=(a,b) (a−nb,b)=μ=(a,b)。
证明也可以这么描述:
∀ a , b ∈ Z \mathbf\forall a,b\in\Z ∀a,b∈Z, ∃ d ∣ ( a , b ) , k ∈ Z \mathbf\exists d|(a,b),k\in\Z ∃d∣(a,b),k∈Z使 a = k b + d a=kb+d a=kb+d即 d = a − k b d=a-kb d=a−kb。
并且 d ∣ b d|b d∣b则 ∀ x ∈ Z \mathbf\forall x\in\Z ∀x∈Z有 d ∣ x b d|xb d∣xb。又因为 d ∣ a d|a d∣a,就有:
∀ x ∈ Z \mathbf\forall x\in\Z ∀x∈Z有 d ∣ ( x b + a ) d|(xb+a) d∣(xb+a),则 x = − k x=-k x=−k时有 d ∣ ( a m o d b ) d|(a\mod b) d∣(amodb);又 d ∣ a d|a d∣a,
那么: a a a和 b b b的公因子集合与 b b b和 a m o d b a\mod b amodb的公因子集合相同。
辗转相除法写起代码来也短,如:T gcd(T a, T b){return !b?a:gcd(b,a%b);}
这个函数揭示了一个约定俗成的概念,即任何非零整数和零的最大公约数为它本身。
不过辗转相除有一个缺点,就是它取模多。取模还是比较慢的,尤其是对int64
的取模。
我们再思考一下辗转相除不取模能怎么做?
Stein算法
1081 − 799 = 282 1081-799=282 1081−799=282,这里留下了一个 282 282 282。能不能给它也 ÷ 2 n \div 2^n ÷2n然后更相减损啊?
也就是说,一奇一偶的时候能不能化偶为奇?
结论: ( k , b ) = 1 (k,b)=1 (k,b)=1, ( k a , b ) = ( a , b ) (ka,b)=(a,b) (ka,b)=(a,b)。特殊地, k = 2 k=2 k=2时……
1081 − 799 = 282 1081-799=282 1081−799=282, 282 ÷ 2 = 141 282\div2=141 282÷2=141
799 − 141 = 658 799-141=658 799−141=658, 658 ÷ 2 = 329 658\div2=329 658÷2=329
329 − 141 = 188 329-141=188 329−141=188, 188 ÷ 2 = 94 188\div2=94 188÷2=94, 94 ÷ 2 = 47 94\div2=47 94÷2=47
141 − 47 = 94 141-47=94 141−47=94, 94 ÷ 2 = 47 94\div2=47 94÷2=47
47 − 47 = 0 47-47=0 47−47=0
虽然好像步数更多了,但是 > > 1 >>1 >>1很快的。
Stein算法就是把上面 ( a , b ) ⇒ ( b , a − b 2 n ) (a,b)\Rightarrow(b,\dfrac{a-b}{2^n}) (a,b)⇒(b,2na−b)改为 ⇒ ( a + b 2 , a − b 2 ) \Rightarrow(\dfrac{a+b}{2},\dfrac{a-b}{2}) ⇒(2a+b,2a−b)。
关于此,我确信已发现了一种美妙的证法,可惜这里空白的地方太小,写不下。
( a , b ) ⇒ ( a + b 2 , a − b 2 ) (a,b)\Rightarrow(\dfrac{a+b}{2},\dfrac{a-b}{2}) (a,b)⇒(2a+b,2a−b)的证明,大致可以这么做:
设 m = a + b 2 m=\dfrac{a+b}{2} m=2a+b, n = a − b 2 n=\dfrac{a-b}{2} n=2a−b,先证 ( a , b ) ∣ ( m , n ) (a,b)|(m,n) (a,b)∣(m,n)再证 ( m , n ) ∣ ( a , b ) (m,n)|(a,b) (m,n)∣(a,b)。【参考】
如果两个数都是奇数就同除以
2
2
2。最后的
g
c
d
gcd
gcd要乘上前面共同除掉的
2
2
2。
复杂度就是
O
(
log
(
max
{
a
,
b
}
)
)
O(\log(\max\{a,b\}))
O(log(max{a,b})),要小心
a
=
b
a=b
a=b退化。
最常见的应用是在高精度gcd上。高精大数要取模是很麻烦的,相减和移位要好得多。
平时gcd还是用辗转相除,代码短而且好记。
- 剩余 -
最小非负剩余
听起来是不是很高端?
它也叫做不完全商。简单说就是取模得到的结果。
剩余类
与 a ∈ Z a\in\Z a∈Z对模 n ∈ N ∗ n\in\N^* n∈N∗同余的整数构成集合 [ a ] [a] [a], a a a称为模 n n n剩余类 [ a ] [a] [a]的一个代表元。
可以定义剩余类间的加法,则以
0
0
0所在的类为单位元,全体剩余类关于加法构成一个交换群。
显然,一定可以定义剩余类之间的乘法,而不一定能够定义剩余类之间的除法。
完全剩余系(完系)
在模n的每个剩余类中各取一个元素,这n个数构成模n的一个完全剩余系。
就是说:
一个模n完全剩余系是一个整数的集合,使得任意整数恰好和其中的一个元素模n同余。
引理 n个模n不同余的整数的集合构成模n的一个完系。
既约剩余系(简化剩余系/缩系/简系)
从与模
m
m
m互素的每个剩余类中各取一个数作为代表元,组成模
m
m
m的一个简化剩余系。
常用性质
Ⅰ 对于 n n n个整数,它们构成模 n n n的完系,等价于它们关于模 n n n两两不同余。
Ⅱ 若
a
i
a_i
ai(
1
≤
i
≤
n
1\le i\le n
1≤i≤n)构成模
n
n
n的完系,则对
k
,
m
∈
Z
k,m\in\Z
k,m∈Z、
(
m
,
n
)
=
1
(m,n)=1
(m,n)=1,
k
+
m
a
i
k+ma_i
k+mai(
1
≤
i
≤
n
1\le i\le n
1≤i≤n)也构成模n的完系。
Ⅲ 若
a
i
a_i
ai(
1
≤
i
≤
n
1\le i\le n
1≤i≤n)构成模
n
n
n的完系,则
∑
i
=
1
n
a
i
=
n
(
n
+
1
)
2
\displaystyle\sum\limits_{i=1}^na_i=\dfrac{n(n+1)}{2}
i=1∑nai=2n(n+1);
并且
∑
i
=
1
n
a
i
=
n
2
(
m
o
d
n
)
\displaystyle\sum\limits_{i=1}^na_i=\dfrac{n}{2}\pmod{n}
i=1∑nai=2n(modn)或
∑
i
=
1
n
a
i
=
0
(
m
o
d
n
)
\displaystyle\sum\limits_{i=1}^na_i=0\pmod{n}
i=1∑nai=0(modn)。
Ⅳ 若 m = p α m=p^\alpha m=pα(素数 p ≥ 2 p\ge2 p≥2)存在原根 g g g,则模 m m m的简化剩余系为: g 0 , g 1 , ⋯ , g ϕ ( m ) − 1 g^0,g^1,\cdots,g^{\phi(m)-1} g0,g1,⋯,gϕ(m)−1。
- 取模&同余 -
取模:将
a
a
a对模
p
p
p取模得到
a
(
m
o
d
p
)
a\pmod{p}
a(modp)。
满足:
a
(
m
o
d
p
)
a\pmod{p}
a(modp)是最小的
c
∈
N
c\in\N
c∈N使
∃
k
∈
Z
,
k
p
+
c
=
a
\mathbf\exists k\in\Z,kp+c=a
∃k∈Z,kp+c=a
同余:
a
a
a和
b
b
b对于模
p
p
p同余,记作
a
≡
b
(
m
o
d
p
)
a\equiv b\pmod{p}
a≡b(modp)。
满足:
a
(
m
o
d
p
)
=
b
(
m
o
d
p
)
a\pmod{p}=b\pmod{p}
a(modp)=b(modp)。
性质:
同余满足自反性、对称性、传递性,因此同余是一种等价关系;
若 a ≡ c ( m o d p ) , b ≡ d ( m o d p ) a\equiv c\pmod{p},b\equiv d\pmod{p} a≡c(modp),b≡d(modp),则 a ± b ≡ c ± d ( m o d p ) , a b ≡ c d ( m o d p ) a\pm b\equiv c\pm d\pmod{p},ab\equiv cd\pmod{p} a±b≡c±d(modp),ab≡cd(modp);
若 a c ≡ b c ( m o d p ) , c ≠ 0 ac\equiv bc\pmod{p},c\ne0 ac≡bc(modp),c=0,则 a ≡ b ( m o d m ( c , m ) ) a\equiv b\pmod{\dfrac{m}{(c,m)}} a≡b(mod(c,m)m)
其中 ( c , m ) (c,m) (c,m)表示 c c c和 m m m的最大公因数(gcd)。
若 a ≡ b ( m o d p ) a\equiv b\pmod{p} a≡b(modp),则 a n ≡ b n ( m o d p ) a^n\equiv b^n\pmod{p} an≡bn(modp);
若 ∀ i ∈ [ 1 , N ∗ ] ∩ Z \mathbf\forall i\in[1,\N^*]\cap\Z ∀i∈[1,N∗]∩Z有 a ≡ b ( m o d p i ) a\equiv b\pmod{p_i} a≡b(modpi),记所有 p i p_i pi的最小公倍数(lcm) P P P, a ≡ b ( m o d P ) a\equiv b\pmod{P} a≡b(modP)
\;
费马小定理
对于质数
p
p
p,一定有
a
p
≡
a
(
m
o
d
p
)
a^p\equiv a\pmod{p}
ap≡a(modp)。
当
p
∣
a
p|a
p∣a不成立时,我们有
a
p
−
1
≡
1
(
m
o
d
p
)
a^{p-1}\equiv1\pmod{p}
ap−1≡1(modp)。
欧拉定理
对于
∀
a
,
p
∈
N
∗
\mathbf\forall a,p\in\N^*
∀a,p∈N∗满足
(
a
,
p
)
=
1
(a,p)=1
(a,p)=1,有
a
ϕ
(
p
)
≡
1
(
m
o
d
p
)
a^{\phi(p)}\equiv 1\pmod{p}
aϕ(p)≡1(modp)。
显然费马小定理是欧拉定理的一个特殊情况,费马小定理可以表述为:
对于 ∀ a , p ∈ N ∗ \mathbf\forall a,p\in\N^* ∀a,p∈N∗满足 ( a , p ) = 1 , ϕ ( p ) = p − 1 (a,p)=1,\phi(p)=p-1 (a,p)=1,ϕ(p)=p−1,有 a p − 1 ≡ 1 ( m o d p ) a^{p-1}\equiv 1\pmod{p} ap−1≡1(modp)。
其中
ϕ
(
p
)
=
p
−
1
\phi(p)=p-1
ϕ(p)=p−1等价于
p
p
p为质数。
ϕ
\phi
ϕ是欧拉函数,
ϕ
(
p
)
\phi(p)
ϕ(p)可以说是指
p
p
p的既约剩余系个数。
- 递推数列循环节 -
https://blog.csdn.net/bigbigship/article/details/45624681
- 欧拉函数 -
通式
x
≠
0
x\ne0
x=0有
ϕ
(
x
)
=
x
∏
i
=
1
ω
(
x
)
(
1
−
1
p
i
)
\displaystyle{\mathcal{\phi(x)=x\prod\limits_{i=1}^{\omega(x)}(1-\frac{1}{p_i})}}
ϕ(x)=xi=1∏ω(x)(1−pi1),其中
ϕ
(
x
)
\phi(x)
ϕ(x)为欧拉函数,表示
≤
x
\le x
≤x与
x
x
x互质的数的个数。
注意:是小于等于而不是小于。这么记:φ(1)=1。
为什么通式是这个?
可以认为:每乘上一个
(
1
−
1
p
i
)
(1-\frac{1}{p_i})
(1−pi1)就筛掉了
x
x
x的一个质因子在
[
1
,
x
]
[1,x]
[1,x]内的倍数。
之所以要用在这里用
1
1
1减然后去乘,是因为要不重不漏地计数。
通式也可以用下面的性质Ⅱ和性质Ⅲ证明。
由通式可以证明性质Ⅲ(欧拉函数的积性)。
也可以用剩余那套来证积性。【参考】
性质
Ⅰ 对 a , b , c ∈ Z a,b,c\in\Z a,b,c∈Z满足 b ∣ a b|a b∣a,有: a b m o d c = a m o d b c b m o d c \dfrac{a}{b}\mod c=\dfrac{a\mod bc}{b}\mod c bamodc=bamodbcmodc
并且若 ( b , c ) = 1 (b,c)=1 (b,c)=1,有: a b m o d c = a b ϕ ( c ) − 1 m o d c \dfrac{a}{b}\mod c=ab^{\phi(c)-1}\mod c bamodc=abϕ(c)−1modc
Ⅱ p p p为质数。 ϕ ( p k ) = ( p − 1 ) ⋅ p k − 1 \phi(p^k)=(p-1)\cdot p^{k-1} ϕ(pk)=(p−1)⋅pk−1:因为除了 p p p的倍数外所有小于 n n n的数都和 n n n互质。
Ⅲ 欧拉函数是积性函数。这就是说: ϕ ( m n ) = ϕ ( m ) ϕ ( n ) \phi(mn)=\phi(m)\phi(n) ϕ(mn)=ϕ(m)ϕ(n)当且仅当 ( m , n ) = 1 (m,n)=1 (m,n)=1。
Ⅳ n n n为奇数, ϕ ( 2 n ) = ϕ ( n ) \phi(2n)=\phi(n) ϕ(2n)=ϕ(n)
Ⅴ n n n为质数, ϕ ( n ) = n − 1 \phi(n)=n-1 ϕ(n)=n−1
Ⅵ 欧拉定理:当 ( a , m ) = 1 (a,m)=1 (a,m)=1时 a ϕ ( m ) ≡ 1 ( m o d m ) a^{\phi(m)}\equiv1\pmod{m} aϕ(m)≡1(modm)
Ⅶ 欧拉降幂(扩展欧拉定理): a c ≡ { a c m o d ϕ ( m ) , ( a , m ) = 1 a c , ( a , m ) ≠ 1 , c < ϕ ( m ) a [ c m o d ϕ ( m ) ] + ϕ ( m ) , ( a , m ) ≠ 1 , c ≥ ϕ ( m ) a^c\equiv\begin{cases}a^{c\mod \phi(m)},\;\qquad\qquad\qquad\;\;\;\qquad(a,m)=1\\a^c,\qquad\qquad\qquad\;\,\qquad(a,m)\ne1,c<\phi(m)\\a^{[c\mod \phi(m)]+\phi(m)},\;\qquad(a,m)\ne1,c\ge\phi(m)\end{cases} ac≡⎩⎪⎨⎪⎧acmodϕ(m),(a,m)=1ac,(a,m)=1,c<ϕ(m)a[cmodϕ(m)]+ϕ(m),(a,m)=1,c≥ϕ(m)
Ⅷ n > 2 n>2 n>2, 2 ∣ ϕ ( n ) 2|\phi(n) 2∣ϕ(n)。
Ⅸ ≤ n \le n ≤n的数里与 n n n互质的数的和: ϕ ( n ) ⋅ n 2 \cfrac{\phi(n)\cdot n}{2} 2ϕ(n)⋅n
Ⅹ n = ∑ d ∣ n ϕ ( d ) = ∑ d ∣ n ∑ k ∣ d μ ( k ) ⋅ d k n=\sum\limits_{d|n}\phi(d)=\sum\limits_{d|n}\sum\limits_{k|d}\frac{\mu(k)\cdot d}{k} n=d∣n∑ϕ(d)=d∣n∑k∣d∑kμ(k)⋅dn = ∑ d ∣ n ϕ ( d ) n=\sum\limits_{d|n}\phi(d) n=d∣n∑ϕ(d)
证明(大概地):
首先,我们把 [ 1 , n ] [1,n] [1,n]的整数按照与 n n n的最大公约数 d d d分类。显然 d d d取到 n n n的所有因数。
记与 n n n的最大公约数为 d d d的一类数的集合为 S d S_d Sd。可知 ∑ d ∣ n ∣ S d ∣ = n \sum\limits_{d|n}|S_d|=n d∣n∑∣Sd∣=n。
∵ ∀ m ∈ [ 1 , n ] ∩ N ∗ \because \mathbf\forall m\in[1,n]\cap\N^* ∵∀m∈[1,n]∩N∗, m ∈ S d m\in S_d m∈Sd当且仅当 ( n , m ) = d (n,m)=d (n,m)=d即 ( n d , m d ) = 1 (\frac{n}{d},\frac{m}{d})=1 (dn,dm)=1。
又 1 ≤ m ≤ n 1\le m\le n 1≤m≤n,只考虑 d ∣ m d|m d∣m的 m m m,那么 m d \frac{m}{d} dm恰好取到所有 ≥ 1 \ge1 ≥1且 ≤ n d \le\frac{n}{d} ≤dn的数。
∴ m ∈ S d \therefore m\in S_d ∴m∈Sd的 m m m应该有 ϕ ( n d ) \phi(\frac{n}{d}) ϕ(dn)个。
∴ n = ∑ d ∣ n ϕ ( n d ) = ∑ d ∣ n ϕ ( d ) \therefore n=\sum\limits_{d|n}\phi(\frac{n}{d})=\sum\limits_{d|n}\phi(d) ∴n=d∣n∑ϕ(dn)=d∣n∑ϕ(d)。
也可以用Dirchlet积,设t=φ*id,把t(n)唯一分解,然后证t(n)=n。
扩展欧拉定理中第一个是欧拉降幂,要求互质;第二个是广义欧拉降幂,不要求互质。
Problem List
★☆☆☆☆☆☆☆☆☆ bzoj3884 欧拉降幂+复杂度分析
★★☆☆☆☆☆☆☆☆ hdu4549 欧拉降幂+矩阵加速
- (乘法)逆元 -
a
x
≡
1
(
m
o
d
n
)
ax\equiv1\pmod{n}
ax≡1(modn)则
x
x
x称作
a
a
a(在整数模
n
n
n乘法群内)的逆元,记作
a
−
1
a^{-1}
a−1。
当
(
a
,
n
)
>
1
(a,n)>1
(a,n)>1时,逆元不存在。
对于
n
n
n为质数的情况,我们通常使用费马小定理
a
n
−
1
≡
1
(
m
o
d
n
)
a^{n-1}\equiv 1\pmod{n}
an−1≡1(modn)
否则使用扩展欧几里德算法求解。
- 解模线性方程:扩展欧几里得算法(exGCD) -
https://www.lydsy.com/JudgeOnline/problem.php?id=1965
- exGCD求逆 -
- 解互质模线性方程组:中国剩余定理(CRT) -
- 解任意模线性方程组:扩展中国剩余定理(exCRT) -
- 解高次同余方程:BSGS(Baby-Step-Giant-Step) -
BSGS
exBSGS
- 线性筛 -
埃拉托斯特尼筛法(埃氏筛/埃氏筛法)
从 2 2 2开始遍历,对于每个质数,把它在数据范围内的倍数打上合数标记。 O ( n log log n ) O(n\log\log n) O(nloglogn)。
复杂度证明:
在埃氏筛法中,对每个质数 p p p,要遍历 n p \frac{n}{p} pn个数。
所以总共要遍历 ∑ p n p = n ∑ p 1 p \sum\limits_{p}\frac{n}{p}=n\sum\limits_{p}\frac{1}{p} p∑pn=np∑p1个。
设 f ( n ) f(n) f(n)表示 [ 1 , n ] [1,n] [1,n]内所有素数的倒数和。 n → + ∞ n\to+\infty n→+∞时, f ( n ) f(n) f(n)与 ln ln n \ln{\ln{n}} lnlnn为等价无穷大量。【参考】
for(int i=2;i<=n;++i) if(!vis[i]) for(int j=i+i;j<=n;j+=i) vis[j]=1;
线性筛(欧拉筛/欧拉筛法)
埃氏筛法常数比线性筛小不少,所以线性筛一般还是用来筛积性函数。
当规模
>
1
0
6
>10^6
>106的时候,筛素数可以考虑线性筛。
线性筛保证每个数只被检测一次,所以复杂度
O
(
n
)
O(n)
O(n)。
Problem List
★★☆☆☆☆☆☆☆☆ 计蒜客30999
- 素数测试:Miller-Rabbin -
二次探测定理
- 因数分解:Pollard-Rho -
时间复杂度 O ( p 1 2 log 2 ( n ) ) O(p^{\frac{1}{2}}\log^2(n)) O(p21log2(n)),期望 O ( n 1 4 ) O(n^{\frac{1}{4}}) O(n41)。【证明】
- 因数分解与加密:RSA原理 -
简单地讲,我们有三个参数: N , k p u b l i c , k p r i v a t e N,k_{public},k_{private} N,kpublic,kprivate。
其中:
Ⅰ 大整数
N
N
N是两个大质数
p
,
q
p,q
p,q的乘积;于是
ϕ
(
N
)
=
ϕ
(
p
)
⋅
ϕ
(
q
)
=
(
p
−
1
)
(
q
−
1
)
\phi(N)=\phi(p)\cdot\phi(q)=(p-1)(q-1)
ϕ(N)=ϕ(p)⋅ϕ(q)=(p−1)(q−1)。
Ⅱ
k
p
u
b
l
i
c
k_{public}
kpublic在满足
g
c
d
(
k
p
u
b
l
i
c
,
ϕ
(
N
)
)
=
1
gcd\large(\small k_{public},\small\phi(N)\large)\normalsize=1
gcd(kpublic,ϕ(N))=1的前提下可以任取(当然
1
<
k
p
u
b
l
i
c
<
ϕ
(
N
)
1<k_{public}<\phi(N)
1<kpublic<ϕ(N))
Ⅲ
k
p
r
i
v
a
t
e
k_{private}
kprivate的值只需要解
k
p
u
b
l
i
c
⋅
k
p
r
i
v
a
t
e
≡
1
(
m
o
d
ϕ
(
N
)
)
k_{public}\cdot k_{private}\equiv1\pmod{\phi(N)}
kpublic⋅kprivate≡1(modϕ(N))得。这步用exgcd。
那么公钥
(
N
,
k
p
u
b
l
i
c
)
(N,k_{public})
(N,kpublic),私钥
(
N
,
k
p
r
i
v
a
t
e
)
(N,k_{private})
(N,kprivate)。
(上面两个括号指的是数对一类的意思,反正不是说gcd)
加密利用公钥(压缩信息):
y
≡
x
k
p
u
b
l
i
c
(
m
o
d
N
)
y\equiv x^{k_{public}}\pmod{N}
y≡xkpublic(modN)
解密利用私钥(还原信息):
x
≡
y
k
p
r
i
v
a
t
e
(
m
o
d
N
)
x\equiv y^{k_{private}}\pmod{N}
x≡ykprivate(modN)【证明】
实际上还要带上随机因素做padding,一般遵循PCKS1标准。
不然说不定就可以直接根据明文和密文搞对应了。【参考】
假设现在手里有公钥 ( N , k p u b l c ) (N,k_{publc}) (N,kpublc)和密文 y y y(并且知道加密是RSA),要破解(求明文 x x x):
首先因为被模了,所以当然不要想着可以用第一条式子还原。
假设我们现在没有其他办法,只能算 k p r i v a t e k_{private} kprivate来求明文。
但是!要求 k p r i v a t e k_{private} kprivate,只能通过求 ϕ ( N ) \phi(N) ϕ(N);这是什么概念?
线性筛就不要期望了,只能用 ϕ ( N ) = N ⋅ ∏ i = 1 ω ( N ) p i − 1 p i \displaystyle{\phi(N)=N\cdot\large\prod\limits_{\tiny i=1}^{\tiny\omega(N)}\small\frac{p_i-1}{p_i}} ϕ(N)=N⋅i=1∏ω(N)pipi−1来求。
所以得因数分解。通常认为对RSA类大数的因数分解一般用GNFS最快,不过也很慢。
在量子计算机上面有一种超快的算法可以分解。不过暂时还不用担心这个。
- 因数分解:一般数域筛法(GNFS) -
首先,这个“筛法”并不是指素数筛,数域筛法(NFS)也不是欧拉筛法(
Pollard-ρ的效率跟因数大小有不小的关系;
而GNFS的运行时间仅仅依赖于要分解的整数的长度。
数域筛法(NFS)复杂度: O ( n c log ( n ) log 2 [ log ( n ) ] 3 ) O\frak{\left(n^{c\sqrt{\log(n)}\sqrt[3]{\log^2[\log(n)]}}\right)} O(nclog(n)3log2[log(n)])
对于GNFS, c ≈ 64 9 3 c\approx\sqrt[3]{\frac{64}{9}} c≈3964。
- 快速开根:牛顿迭代法(Newton’s Method) & 0x5f3759df -
牛顿迭代法
牛顿迭代法是二阶收敛的。【参考】【证明】【几何解释】
0x5f3759df
牛顿迭代法依赖于合适的初值。这个数就很合适。【参考1】【参考2】
- 阶乘近似:斯特林(Stirling)公式 -
lim n → + ∞ n ! 2 π n ( n e ) n = 1 \mathcal{\lim\limits_{n\to+\infty}\dfrac{n!}{\sqrt{2\pi n}(\frac{n}{e})^n}}=1 n→+∞lim2πn(en)nn!=1。
重要推论: n ! ≈ 2 π n ( n e ) n \mathcal{n!\approx\sqrt{2\pi n}(\frac{n}{e})^n} n!≈2πn(en)n
n
≤
10
n\le10
n≤10的时候斯特林公式不是很准确,反正可以自己算的(
不过基本上不可能遇到真的需要快速估算阶乘,一般遇到的都是取对数,所以问题应该不大?
Problem List
★☆☆☆☆☆☆☆☆☆ nowcoder75A
- 本原勾股数组(PPT) -
虚数单位:
i
i
i,也记作
i
^
\mathrm{\hat{i}}
i^
性质:
i
2
=
−
1
i^{_2}=-1
i2=−1
复数:形如 z = a + b i z=a+bi z=a+bi( a , b ∈ R a,b\in \R a,b∈R),其中 a a a是实部, b i bi bi是虚部。
z z z在 b i = 0 bi=0 bi=0时称为实数, a = 0 a=0 a=0时称为纯虚数
容易得到:
设复数 u = a + b i u=a+bi u=a+bi, v = c + d i v=c+di v=c+di( a , b , c , d ∈ R a,b,c,d\in\R a,b,c,d∈R)
u + v = ( a + c ) + ( b + d ) i u+v=(a+c)+(b+d)i u+v=(a+c)+(b+d)i
u − v = ( a − c ) + ( b − d ) i u-v=(a-c)+(b-d)i u−v=(a−c)+(b−d)i
u × v = ( a c − b d ) + ( a d + b c ) i u\times v=(ac-bd)+(ad+bc)i u×v=(ac−bd)+(ad+bc)i
共轭复数: z ˉ = a − b i \bar z=a-bi zˉ=a−bi是 z = a + b i z=a+bi z=a+bi的共轭复数( a , b ∈ R a,b\in \R a,b∈R)
∣ z ∣ = ∣ z ˉ ∣ |z|=|\bar z| ∣z∣=∣zˉ∣
( a + b i ) ( a − b i ) = a 2 + b 2 (a+bi)(a-bi)=a^2+b^2 (a+bi)(a−bi)=a2+b2( a , b ∈ R a,b\in \R a,b∈R)
复数集
C
\mathbb C
C是无序集。
复数的模:对于
z
=
a
+
b
i
z=a+bi
z=a+bi(
z
∈
C
z\in\mathbb C
z∈C),它的模
∣
z
∣
=
a
2
+
b
2
|z|=\sqrt{a^2+b^2}
∣z∣=a2+b2
在复变函数中,自变量
z
z
z可以写作
z
=
∣
z
∣
⋅
(
c
o
s
θ
+
i
s
i
n
θ
)
=
∣
z
∣
⋅
e
i
θ
z=|z|\cdot(cos\theta+isin\theta)=|z|\cdot e^{i\theta}
z=∣z∣⋅(cosθ+isinθ)=∣z∣⋅eiθ
其中
θ
\theta
θ是
z
z
z的幅角
Arg
(
z
)
\operatorname{Arg}(z)
Arg(z)。
Arg
(
z
)
∈
[
−
π
,
π
]
\operatorname{Arg}(z)\in[-\pi,\pi]
Arg(z)∈[−π,π]称为幅角主值
arg
(
z
)
\arg(z)
arg(z)。
z ∈ C z\in\mathbb{C} z∈C的幅角有无限多个值,这些值两两相差 2 π k 2\pi k 2πk( k ∈ Z k\in\Z k∈Z)。
- 矩阵 -
m行n列矩阵例如:三行二列矩阵
A
=
[
a
11
a
12
a
21
a
22
a
31
a
32
]
=
(
a
i
j
)
m
×
n
=
(
a
i
j
)
∈
C
m
×
n
\mathbf A=\left[\begin{matrix}a_{_{11}}\quad a_{_{12}}\\a_{_{21}}\quad a_{_{22}}\\a_{_{31}}\quad a_{_{32}}\end{matrix}\right]=(a_{ij})_{m\times n}=(a_{ij})\in\mathbb C^{m\times n}
A=⎣⎡a11a12a21a22a31a32⎦⎤=(aij)m×n=(aij)∈Cm×n
其
i
i
i行
j
j
j列的元素一般记作
a
i
j
a_{ij}
aij(如果是
B
\mathbf B
B就经常记作
b
i
j
b_{ij}
bij这样的),这里我可能记作
A
i
j
\mathbf A_{ij}
Aij
特别地,当 m = n m=n m=n时,n行n列矩阵也称为n阶方阵。
假如矩阵里面的元素都是实数,那么这个矩阵也称为实矩阵;
如果(可能)有虚部非零的复数,就称为复矩阵。
单位矩阵:主对角线(左上-右下对角线)上元素是1,其他的都是0。记作 E \mathbf E E或者 I \mathbf I I。
对角矩阵:不在主对角线上的元素都是
0
0
0。
通常记作
d
i
a
g
(
diag(
diag(主对角线上的元素,从左上到右下
)
)
)
- 增广矩阵&系数矩阵&相邻矩阵 -
增广矩阵&系数矩阵
感性理解一下。举个例子:
对于二元一次方程组
{
a
1
x
+
b
1
y
=
c
1
a
2
x
+
b
2
y
=
c
2
\begin{cases}a_{_1}x+b_{_1}y=c_{_1}\\a_{_2}x+b_{_2}y=c_{_2}\end{cases}
{a1x+b1y=c1a2x+b2y=c2
它的增广矩阵是
[
a
1
b
1
c
1
a
2
b
2
c
2
]
\left[\begin{matrix}a_{_1}\quad b_{_1}\quad c_{_1}\\a_{_2}\quad b_{_2}\quad c_{_2}\end{matrix}\right]
[a1b1c1a2b2c2],系数矩阵是
[
a
1
b
1
a
2
b
2
]
\left[\begin{matrix}a_{_1}\quad b_{_1}\\a_{_2}\quad b_{_2}\end{matrix}\right]
[a1b1a2b2]
相邻矩阵
图的相邻矩阵也叫做邻接矩阵。
- 分块矩阵 -
对矩阵 M = [ a b c d e f g h i j k l ] \mathbf M=\left[\begin{matrix}a\quad b\quad c\\d\quad e\quad f\\g\quad h\quad i\\j\quad k\quad l\end{matrix}\right] M=⎣⎢⎢⎡abcdefghijkl⎦⎥⎥⎤
设其子块:
A = [ a b d e g h ] \mathbf A=\left[\begin{matrix}a\quad b\\d\quad e\\g\quad h\end{matrix}\right] A=⎣⎡abdegh⎦⎤,
B = [ j k ] \mathbf B=\left[\begin{matrix}j\quad k\end{matrix}\right] B=[jk],
C = [ e f i ] \mathbf C=\left[\begin{matrix}e\\f\\i\end{matrix}\right] C=⎣⎡efi⎦⎤,
D = [ l ] \mathbf D=[l] D=[l]那么
M = [ a b c d e f g h i j k l ] = ( x i j ) m × n \mathbf M=\left[\begin{matrix}a\quad b\quad c\\d\quad e\quad f\\g\quad h\quad i\\j\quad k\quad l\end{matrix}\right]=(x_{ij})_{m\times n} M=⎣⎢⎢⎡abcdefghijkl⎦⎥⎥⎤=(xij)m×n
并且
M = [ A C B D ] = ( M i j ) r × s \mathbf M=\left[\begin{matrix}\mathbf A\quad\mathbf C\\\mathbf B\quad\mathbf D\end{matrix}\right]=(\mathbf M_{ij})_{r\times s} M=[ACBD]=(Mij)r×s称
[ A C B D ] = ( M i j ) r × s \left[\begin{matrix}\mathbf A\quad\mathbf C\\\mathbf B\quad\mathbf D\end{matrix}\right]=(\mathbf M_{ij})_{r\times s} [ACBD]=(Mij)r×s
为分块矩阵。
上面是一个简单的例子。
分块矩阵的加法
设
A
=
(
a
i
j
)
m
×
n
,
B
=
(
b
i
j
)
m
×
n
\mathbf A=(a_{ij})_{m\times n},\mathbf B=(b_{ij})_{m\times n}
A=(aij)m×n,B=(bij)m×n
用同样的方法对
A
,
B
\mathbf A,\mathbf B
A,B分块(即:
A
i
j
\mathbf A_{ij}
Aij和
B
i
j
\mathbf B_{ij}
Bij为同型矩阵)
那么
A
±
B
=
(
A
i
j
±
B
i
j
)
r
×
s
\mathbf A\pm\mathbf B=(\mathbf A_{ij}\pm\mathbf B_{ij})_{r\times s}
A±B=(Aij±Bij)r×s
- 平面向量的坐标表示 -
以平面直角坐标系为例,取分别与x轴、y轴方向相同的基/基向量/单位向量i,j
对于向量
a
→
=
x
i
+
y
j
\overrightarrow{a}=x\mathbf{i}+y\mathbf{j}
a=xi+yj,它的坐标为
(
x
,
y
)
(x,y)
(x,y)。记作
a
=
[
x
y
]
a=\left[\begin{matrix}x\\y\end{matrix}\right]
a=[xy]。
- 运算 -
加法
两个同型矩阵(都为m行n列)之间可以进行加法
举个例子,
[
a
b
c
]
+
[
d
e
f
]
=
[
a
+
d
b
+
e
c
+
f
]
[a\quad b\quad c]+[d\quad e\quad f]=[a+d\quad b+e\quad c+f]
[abc]+[def]=[a+db+ec+f]
满足交换律
A
+
B
=
B
+
A
\mathbf A+\mathbf B=\mathbf B+\mathbf A
A+B=B+A和结合律
(
A
+
B
)
+
C
=
A
+
(
B
+
C
)
(\mathbf A+\mathbf B)+\mathbf C=\mathbf A+(\mathbf B+\mathbf C)
(A+B)+C=A+(B+C)
数乘
举个例子,
2
[
a
b
c
]
=
[
2
a
2
b
2
c
]
2[a\quad b\quad c]=[2a\quad 2b\quad 2c]
2[abc]=[2a2b2c]
满足以下运算律:
λ
(
μ
A
)
=
μ
(
λ
A
)
=
λ
μ
A
\lambda(\mu\mathbf A)=\mu(\lambda\mathbf A)=\lambda\mu\mathbf A
λ(μA)=μ(λA)=λμA
(
λ
+
μ
)
A
=
λ
A
+
μ
A
(\lambda+\mu)\mathbf A=\lambda\mathbf A+\mu\mathbf A
(λ+μ)A=λA+μA
λ
(
A
+
B
)
=
λ
A
+
λ
B
\lambda(\mathbf A+\mathbf B)=\lambda\mathbf A+\lambda\mathbf B
λ(A+B)=λA+λB
矩阵的加减法和数乘合称矩阵的线性运算
转置
矩阵 A \mathbf A A的转置(矩阵)记作 A T \mathbf A^{\mathrm T} AT。
举个例子, [ a , b ] T = [ a b ] [a,b]^{\mathrm T}=\left[\begin{matrix}a\\b\end{matrix}\right] [a,b]T=[ab]。
满足以下运算律:
(
A
T
)
T
=
A
(\mathbf A^{\mathrm T})^{\mathrm T}=\mathbf A
(AT)T=A
(
μ
A
)
T
=
μ
A
T
(\mu\mathbf A)^{\mathrm T}=\mu\mathbf A^{\mathrm T}
(μA)T=μAT
(
A
B
)
T
=
A
T
B
T
(\mathbf A\mathbf B)^{\mathrm T}=\mathbf A^{\mathrm T}\mathbf B^{\mathrm T}
(AB)T=ATBT
共轭
就是把每个元素共轭一下。(对于复数
a
+
b
i
a+bi
a+bi,它的共轭复数为
a
−
b
i
a-bi
a−bi)
矩阵
A
\mathbf A
A的共轭(矩阵)记作
A
‾
\overline{\mathbf A}
A
举个例子:对于矩阵
A
=
[
a
b
+
c
i
i
]
\mathbf A=[a\quad b+ci\quad i]
A=[ab+cii],它的共轭矩阵
A
‾
=
[
a
,
b
−
c
i
,
−
i
]
\overline{\mathbf A}=[a,b-ci,-i]
A=[a,b−ci,−i]
共轭转置
就是共轭然后转置。
对于矩阵
A
\mathbf A
A,它的共轭转置(矩阵)记作
A
T
‾
=
(
A
‾
)
T
=
A
H
\overline{\mathbf A^{_{\mathrm T}}}=\left(\overline{\mathbf A}\right)^{_{\mathrm T}}=\mathbf A^\mathrm H
AT=(A)T=AH
也有沙雕喜欢记成
A
∗
\mathbf A^*
A∗,刚好跟伴随矩阵的记号冲突(
对称矩阵
n
n
n阶方阵
A
\mathbf A
A满足
A
=
A
T
\mathbf A=\mathbf A^\mathrm T
A=AT那么它是对称的;
满足
A
=
−
A
T
\mathbf A=-\mathbf A^\mathrm T
A=−AT那么它是反对称的;
并且:一定有
A
+
A
T
\mathbf A+\mathbf A^\mathrm T
A+AT对称,
A
−
A
T
\mathbf A-\mathbf A^\mathrm T
A−AT反对称。
又
A
=
1
2
(
A
+
A
T
)
+
1
2
(
A
−
A
T
)
\mathbf A=\dfrac{1}{2}(\mathbf A+\mathbf A^\mathrm T)+\dfrac{1}{2}(\mathbf A-\mathbf A^\mathrm T)
A=21(A+AT)+21(A−AT):
任何方阵可以表示为一个对称矩阵和一个反对称矩阵的和。
通常将
n
n
n阶对称矩阵的集合记为
S
n
S_n
Sn。
自共轭矩阵
如果一个矩阵的共轭转置矩阵是它本身,那么称该矩阵为Hermitian矩阵(自共轭矩阵)。
矩阵直积(张量积/Kronecker积)
设
A
=
(
a
i
j
)
m
×
n
\mathbf A=(a_{ij})_{m\times n}
A=(aij)m×n,
B
=
(
b
i
j
)
p
×
q
\mathbf B=(b_{ij})_{p\times q}
B=(bij)p×q
A
\mathbf A
A和
B
\mathbf B
B的直积:分块矩阵
A
⊗
B
=
(
a
i
j
B
)
m
p
×
n
q
\mathbf A\otimes\mathbf B=(a_{ij}\mathbf B)_{mp\times nq}
A⊗B=(aijB)mp×nq
显然
A
⊗
B
\mathbf A\otimes\mathbf B
A⊗B和
B
⊗
A
\mathbf B\otimes\mathbf A
B⊗A是同阶矩阵。
直积满足结合律,但不满足交换律。
可以简单把 A ⊗ B \mathbf A\otimes\mathbf B A⊗B理解成“将 A \mathbf A A作为 B \mathbf B B里面的 1 1 1”得到的“新的 B \mathbf B B”之类的(
当然这种说法不严谨,仅供直观感性理解
性质:
k ( A ⊗ B ) = ( k A ) ⊗ B = A ⊗ ( k B ) k(\mathbf A\otimes\mathbf B)=(k\mathbf A)\otimes\mathbf B=\mathbf A\otimes(k\mathbf B) k(A⊗B)=(kA)⊗B=A⊗(kB)
直积对矩阵加法、共轭、共轭转置满足分配律。
若 A ∈ C m × n , B ∈ C p × q , C ∈ C n × r , D ∈ C q × s \mathbf A\in\mathbb C^{m\times n},\mathbf B\in\mathbb C^{p\times q},\mathbf C\in\mathbb C^{n\times r},\mathbf D\in\mathbb C^{q\times s} A∈Cm×n,B∈Cp×q,C∈Cn×r,D∈Cq×s, ( A ⊗ B ) ( C ⊗ D ) = ( A C ) ⊗ ( B D ) (\mathbf A\otimes\mathbf B)(\mathbf C\otimes\mathbf D)=(\mathbf{AC})\otimes(\mathbf{BD}) (A⊗B)(C⊗D)=(AC)⊗(BD)
由上面那个,有一个非常显然的性质:(感觉就是废话)
若有 A ∈ C m × n , B ∈ C p × q \mathbf A\in\mathbb C^{m\times n},\mathbf B\in\mathbb C^{p\times q} A∈Cm×n,B∈Cp×q,单位矩阵 E n , E q , \mathbf E_n,\mathbf E_q, En,Eq,,那么 ( A ⊗ E n ) ( B ⊗ E q ) = A ⊗ B (\mathbf A\otimes\mathbf E_n)(\mathbf B\otimes\mathbf E_q)=\mathbf A\otimes\mathbf B (A⊗En)(B⊗Eq)=A⊗B
如果 A \mathbf A A, B \mathbf B B可逆, A ⊗ B \mathbf A\otimes\mathbf B A⊗B可逆。且 ( A ⊗ B ) − 1 = A − 1 ⊗ B − 1 (\mathbf A\otimes\mathbf B)^{-1}=\mathbf A^{-1}\otimes\mathbf B^{-1} (A⊗B)−1=A−1⊗B−1
对单位矩阵 E m \mathbf E_m Em, E n \mathbf E_n En, E m ⊗ E n = E n ⊗ E m = E m n \mathbf E_m\otimes\mathbf E_n=\mathbf E_n\otimes\mathbf E_m=\mathbf E_{mn} Em⊗En=En⊗Em=Emn
\;
向量外积
设向量
x
=
(
x
1
,
x
2
,
x
3
,
⋯
,
x
n
)
T
\bm x=(x_{_1},x_{_2},x_{_3},\cdots,x_{_n})^{\mathrm T}
x=(x1,x2,x3,⋯,xn)T,
y
=
(
y
1
,
y
2
,
y
3
,
⋯
,
y
n
)
T
\bm y=(y_{_1},y_{_2},y_{_3},\cdots,y_{_n})^{\mathrm T}
y=(y1,y2,y3,⋯,yn)T
它们的外积为
x
y
T
=
x
⊗
y
T
\bm x\bm y^{\mathrm T}=\bm x\otimes\bm y^{\mathrm T}
xyT=x⊗yT,满足
(
x
y
T
)
i
j
=
x
i
y
j
(\bm{xy}^\mathrm T)_{ij}=\bm x_i\bm y_j
(xyT)ij=xiyj
矩阵乘法(矩乘)
A
=
(
a
i
j
)
m
×
p
\mathbf A=(a_{ij})_{m\times p}
A=(aij)m×p,
B
=
(
b
i
j
)
p
×
n
\mathbf B=(b_{ij})_{p\times n}
B=(bij)p×n。
定义它们的乘积
C
=
A
B
\mathbf C=\mathbf{AB}
C=AB满足
C
i
j
=
∑
k
=
1
p
a
i
k
b
k
j
\mathbf C_{ij}=\displaystyle\sum\limits_{k=1}^p a_{_{ik}}b_{_{kj}}
Cij=k=1∑paikbkj
矩阵乘法一般不满足交换律;满足交换律的话,那么相乘的两个矩阵是方阵。
Strassen矩阵乘法
对
O
(
n
3
)
O(n^3)
O(n3)的矩乘做了一些优化(减少了乘法次数),复杂度
O
(
n
log
7
)
O(n^{\log7})
O(nlog7)。
向量内积
可以看作是矩乘的特例。
1
×
p
1\times p
1×p和
p
×
1
p\times 1
p×1的矩阵相乘。
一般地(在矩阵元之间的乘法运算
⋅
\cdot
⋅满足交换律的情况下),向量内积满足交换律。
设向量
x
=
(
x
1
,
x
2
,
x
3
,
⋯
,
x
n
)
T
\bm x=(x_{_1},x_{_2},x_{_3},\cdots,x_{_n})^{\mathrm T}
x=(x1,x2,x3,⋯,xn)T,
y
=
(
y
1
,
y
2
,
y
3
,
⋯
,
y
n
)
T
\bm y=(y_{_1},y_{_2},y_{_3},\cdots,y_{_n})^{\mathrm T}
y=(y1,y2,y3,⋯,yn)T
它们的内积
x
T
y
=
∑
i
=
1
n
x
i
y
i
\bm x^{_\mathrm T}\bm y=\displaystyle\sum\limits_{i=1}^nx_{_i}y_{_i}
xTy=i=1∑nxiyi
内积也表示为
≺
x
,
y
≻
\prec\bm x,\bm y\succ
≺x,y≻
哈达马积
同型矩阵
A
\mathbf A
A和
B
\mathbf B
B的哈达马积记作
A
∗
B
\mathbf A*\mathbf B
A∗B。
(
A
∗
B
)
i
j
=
A
i
j
B
i
j
(\mathbf A*\mathbf B)_{ij}=\mathbf A_{ij}\mathbf B_{ij}
(A∗B)ij=AijBij
逆矩阵
首先:只有方阵才可能有逆矩阵;
假如矩阵有逆矩阵,那么称矩阵可逆;否则称该矩阵奇异。
如果一个矩阵可逆,那么其逆矩阵唯一。
对于
M
\mathbf M
M,它的逆矩阵记作
M
−
1
\mathbf M^{-1}
M−1。
M
M
−
1
=
M
−
1
M
=
E
\mathbf {MM}^{-1}=\mathbf{M}^{-1}\mathbf M=\mathbf E
MM−1=M−1M=E,其中
E
\mathbf E
E表示单位矩阵。
一些性质:
A − 1 = C T det ( A ) \mathbf A^{-1}=\dfrac{\mathbf C^{\mathrm T}}{\det(\mathbf A)} A−1=det(A)CT。其中 C T \mathbf C^{\mathrm T} CT表示 A \mathbf A A的伴随矩阵。
( A B ) − 1 = B − 1 A − 1 (\mathbf{AB})^{-1}=\mathbf B^{-1}\mathbf A^{-1} (AB)−1=B−1A−1。
- 行列式&余子式 -
克拉默法则(Carmer’s Rule)
对于
n
n
n元线性方程组
{
a
11
x
1
+
a
12
x
2
+
⋯
+
a
1
n
x
n
=
b
1
a
21
x
1
+
a
22
x
2
+
⋯
+
a
2
n
x
n
=
b
2
⋮
a
n
1
x
1
+
a
n
2
x
2
+
⋯
+
a
n
n
x
n
=
b
n
\begin{cases}a_{11}x_1+a_{12}x_2+\cdots+a_{1n}x_n=b_1\\a_{21}x_1+a_{22}x_2+\cdots+a_{2n}x_n=b_2\\\qquad\qquad\qquad\quad\;\,\vdots\\a_{n1}x_1+a_{n2}x_2+\cdots+a_{nn}x_n=b_n\end{cases}
⎩⎪⎪⎪⎪⎨⎪⎪⎪⎪⎧a11x1+a12x2+⋯+a1nxn=b1a21x1+a22x2+⋯+a2nxn=b2⋮an1x1+an2x2+⋯+annxn=bn
如果它的系数行列式
D
≠
0
D\ne0
D=0,那么它有唯一解:
x
1
=
D
1
D
,
x
2
=
D
2
D
,
⋯
,
x
n
=
D
n
D
x_1=\cfrac{D_1}{D},x_2=\cfrac{D_2}{D},\cdots,x_n=\cfrac{D_n}{D}
x1=DD1,x2=DD2,⋯,xn=DDn
其中
D
i
D_i
Di是对
∀
1
≤
j
≤
n
\mathbf\forall1\le j\le n
∀1≤j≤n,把
a
i
j
a_{ij}
aij换成
b
j
b_j
bj后得到的线性方程组的系数行列式。
定义行列式是为了解线性方程组的;其实上面那个就是行列式的定义。
可以试着手动高斯消元解那个线性方程组。
线性方程组的系数行列式D=0时,齐次方程组解不唯一;
而对于非齐次方程组,此时可能解不唯一,也可能无解。
也就是说:线性方程组有唯一解当且仅当系数行列式
≠
0
\ne0
=0。
行列式
n n n阶方阵 M \mathbf M M的行列式记作 det ( M ) = ∣ M ∣ \det(\mathbf M)=|\mathbf M| det(M)=∣M∣。
二阶矩阵的行列式
det
(
a
b
c
d
)
=
a
d
−
b
c
\det\left(\begin{matrix}a\quad b\\c\quad d\end{matrix}\right)=ad-bc
det(abcd)=ad−bc
三阶行列式用对角线法,比一下右手减掉左手。不写式子了。
当然,一种同样很常见的方法是用代数余子式展开。
n n n阶方阵的行列式也称为 n n n阶行列式。
在二维空间中,可以直观把二阶行列式理解为列向量围成平行四边形的面积;
三维空间中,可以直观把三阶行列式理解为列向量围成平行六面体的体积。
可以自行推导。并且可以推广到高维。具体
det ( A ) × det ( B ) = det ( A B ) = det ( B A ) \det(\mathbf A)\times\det(\mathbf B)=\det(\mathbf{AB})=\det(\mathbf{BA}) det(A)×det(B)=det(AB)=det(BA)
矩阵的行列式等于该矩阵的转置的行列式。
(无序地)从矩阵每一行/列里都挑一个元素出来,将 n n n个元素相乘;
把所有可能方案得到的结果,是偶排列时带正号、是奇排列时带负号,
(偶排列:(在这里指行/列数的排列的)逆序数为偶数的排列。奇排列同理。)
相加,得到的就是矩阵的行列式。
将一个矩阵里面的两行/两列互换,行列式变号。
⇒
\Rightarrow
⇒矩阵里两行相同,行列式为
0
0
0
用非零常数
k
k
k乘矩阵的某一行/列里面的所有元素,那么矩阵的行列式等于之前的行列式乘
k
k
k。
⇒
\Rightarrow
⇒行列式里某一行/列的公因子可以提出来
⇒
\Rightarrow
⇒矩阵两行/两列成比例,那么行列式为
0
0
0
(简单地讲)
行列式里面的一行/列是两组数的和,那么行列式等于把两组数拆开得到的两个行列式的和。
把行列式的某一行/列的各元素乘上同一个数然后加到另一列行/列上,行列式不变。
⇒
\Rightarrow
⇒矩阵的两行/两列线性相关,那么行列式为
0
0
0
子式
设
n
n
n阶方阵
A
\mathbf A
A,其一个
k
k
k阶子式(
1
≤
k
≤
m
1\le k\le m
1≤k≤m,
1
≤
k
≤
n
1\le k\le n
1≤k≤n)是指:
在
A
\mathbf A
A中选
k
k
k行
k
k
k列后产生的
k
2
k^2
k2个交点组成的方阵的行列式。
余子式
对n阶方阵 A \mathbf A A,
其一个k阶余子式:
把
A
\mathbf A
A去掉
m
−
k
m-k
m−k行和
n
−
k
n-k
n−k列后得到的
k
×
k
k\times k
k×k矩阵(
k
k
k阶方阵)的行列式。
其一个元(即元素)
A
i
j
\mathbf A_{ij}
Aij(对应)的(
A
\mathbf A
A的)(
1
1
1阶)余子式
M
i
j
M_{ij}
Mij:
把
A
i
j
\mathbf A_{ij}
Aij所在的行和列去掉后,剩下的
n
−
1
n-1
n−1阶方阵的行列式。
所以:一个元素的余子式和这个元素所在的行和列上的元素的值无关。
代数余子式也有这个性质。
代数余子式
对于矩阵
A
\mathbf A
A,
A
i
j
\mathbf A_{ij}
Aij(对应的)(一阶)代数余子式:
C
i
j
=
(
−
1
)
i
+
j
M
i
j
\mathbf C_{ij}=(-1)^{i+j}M_{ij}
Cij=(−1)i+jMij。
A
\mathbf A
A的余子矩阵:
C
=
(
C
i
j
)
n
×
n
\mathbf C=(\mathbf C_{ij})_{n\times n}
C=(Cij)n×n
A
\mathbf A
A的伴随矩阵:
A
∗
=
C
T
=
(
C
j
i
)
n
×
n
\mathbf A^*=\mathbf C^{\mathrm T}=(\mathbf C_{ji})_{n\times n}
A∗=CT=(Cji)n×n
如果
A
\mathbf A
A可逆,
C
T
=
A
−
1
det
(
A
)
\mathbf C^{\mathrm T}=\mathbf A^{-1}\det(\mathbf A)
CT=A−1det(A)
对于
M
=
(
a
i
j
)
n
×
n
\mathbf M=(a_{ij})_{n\times n}
M=(aij)n×n,
det
(
M
)
=
∑
j
=
1
n
a
i
j
C
i
j
\det(\mathbf M)=\displaystyle\sum\limits_{j=1}^na_{ij}\mathbf C_{ij}
det(M)=j=1∑naijCij(
1
≤
i
≤
n
1\le i\le n
1≤i≤n)。
即:行列式等于任取一行/列,对里面的每个元素与其代数余子式的乘积求和的结果。
特殊地:上三角行列式即上三角矩阵的行列式等于下三角行列式以及对角行列式,
等于上三角矩阵/下三角矩阵/对角矩阵的主对角线(左上-右下对角线)上元素值的乘积。
(PS:次对角线是右上-左下那条。)
- 行向量&列向量 -
行向量 x = [ a 1 a 2 a 3 ⋯ a n ] \mathbf{x}=\left[\begin{matrix}a_{_1}\quad a_{_2}\quad a_{_3}\quad \cdots\quad a_{_n}\end{matrix}\right] x=[a1a2a3⋯an]
列向量 x = [ a 1 a 2 a 3 ⋮ a m ] \mathbf{x}=\left[\begin{matrix}a_{_1}\\a_{_2}\\a_{_3}\\\vdots\\a_{_m}\end{matrix}\right] x=⎣⎢⎢⎢⎢⎢⎡a1a2a3⋮am⎦⎥⎥⎥⎥⎥⎤
列向量为了方便通常记作
x
=
(
a
1
,
a
2
,
a
3
,
⋯
,
a
m
)
T
\mathbf{x}=\left(\begin{matrix}a_{_1},a_{_2},a_{_3},\cdots,a_{_m}\end{matrix}\right)^{\mathrm T}
x=(a1,a2,a3,⋯,am)T
或者记作
x
\mathbf{x}
x,满足
x
T
=
(
a
1
,
a
2
,
a
3
,
⋯
,
a
m
)
\mathbf{x}^{\mathrm T}=\left(\begin{matrix}a_{_1},a_{_2},a_{_3},\cdots,a_{_m}\end{matrix}\right)
xT=(a1,a2,a3,⋯,am)
平时遇到的向量,不加说明一般指列向量。
所有行向量的集合形成一个向量空间(线性空间)
V
1
\mathrm V_{_1}
V1
所有列向量的集合形成另一个向量空间
V
2
\mathrm V_{_2}
V2
V
1
\mathrm V_{_1}
V1和
V
2
\mathrm V_{_2}
V2互为对偶空间。
对于
n
n
n阶单位行向量(
1
1
1行
n
n
n列矩阵)
x
\bm x
x,
x
×
x
T
\bm x\times\bm x^{\mathrm T}
x×xT的结果是一个
1
1
1阶方阵(
1
1
1阶方阵作为结果可以看作一个数),
x
T
×
x
\bm x^{\mathrm T}\times\bm x
xT×x的结果是一个
n
n
n阶方阵。
单位向量:模为 1 1 1、元素平方和为 1 1 1、长度为 1 1 1或者范数为 1 1 1。这样的向量是单位向量。
矩阵 X \mathbf X X的范数记作 ∣ ∣ X ∣ ∣ ||\mathbf X|| ∣∣X∣∣。
- 线性相关&线性无关 -
线性相关:
∀
1
≤
i
≤
n
\mathbf\forall 1\le i\le n
∀1≤i≤n,
x
i
=
∑
j
=
1
i
−
1
k
j
x
j
+
∑
j
=
i
+
1
n
k
j
x
j
\displaystyle{x_{_i}=\sum\limits_{j=1}^{i-1}k_{_j}x_{_j}+\sum\limits_{j=i+1}^{n}k_{_j}x_{_j}}
xi=j=1∑i−1kjxj+j=i+1∑nkjxj
线性无关:不线性相关。
- 秩 -
矩阵的列秩是其线性无关的纵列的极大数目。
实际上是指所有线性独立的列的最大子集的大小。
(线性独立通常就是指线性无关)
类似地行秩是其线性无关的横行的极大数目。
实际上是指所有线性独立的行的最大子集的大小。
n n n阶方阵的秩等于其列秩和行秩。方阵 A \mathbf A A的秩记作 r ( A ) = r k ( A ) = r a n k ( A ) r(\mathbf A)=rk(\mathbf A)=rank(\mathbf A) r(A)=rk(A)=rank(A),且等于 n n n。
m
×
n
m\times n
m×n矩阵的秩定义为其中不等于
0
0
0的子式的最大阶数。(
n
n
n阶方阵行列式的阶数为
n
n
n)
并且其最大值为
min
{
m
,
n
}
\min\{m,n\}
min{m,n}。
假如一个
m
×
n
m\times n
m×n矩阵的秩是
min
{
m
,
n
}
\min\{m,n\}
min{m,n},那么这个矩阵满秩;
否则这个矩阵不满秩(欠秩),其行/列向量线性相关
(感性理解即一行可以由其它行“加减消元”得到)
假如一个矩阵不满秩,那么这个矩阵的行列式的值为 0 0 0
矩阵的秩感性理解一下大概就是高斯消元后非自由变元的个数。
所以说矩阵不满秩
⇔
\Leftrightarrow
⇔矩阵的行/列线性相关并且行列式为
0
0
0
- 矩阵快速幂 -
把快速幂的乘法换成矩阵乘法就可以啦 不多讲。
主要用于加速转移。比如对于数列递推可以搞矩阵加速。
- 映射 -
感性理解一下。
映射
f
:
A
→
B
f:A\to B
f:A→B
满射
f
:
A
→
B
f:A\to B
f:A→B,
∀
y
∈
B
,
∃
x
∈
A
,
f
(
x
)
=
y
\mathbf\forall y\in B,\mathbf\exists x\in A,f(x)=y
∀y∈B,∃x∈A,f(x)=y
单射
f
:
A
→
B
f:A\to B
f:A→B,
∀
y
∈
B
,
∃
x
0
∈
A
,
f
(
x
0
)
=
y
\mathbf\forall y\in B,\mathbf\exists x_{_0}\in A,f(x_{_0})=y
∀y∈B,∃x0∈A,f(x0)=y,且
∄
x
≠
x
0
\mathbf\nexists x\ne x_{_0}
∄x=x0使
f
(
x
)
=
y
f(x)=y
f(x)=y
双射:既是满射又是双射。也就是所谓的一一对应。
- 同态&同构 -
设:
A
=
<
S
A
,
∑
A
>
A=<S_{_A},\sum_{_A}>
A=<SA,∑A>,
S
A
=
{
S
1
A
,
S
2
A
,
⋯
,
S
n
A
}
S_{_A}=\{S_{_{\,1}}^A,S_{_{\,2}}^A,\cdots,S_{_{\,n}}^A\}
SA={S1A,S2A,⋯,SnA},
∑
A
=
{
f
1
A
,
f
2
A
,
⋯
,
f
n
A
}
\sum_{_A}=\{f_{_{\,1}}^A,f_{_{\,2}}^A,\cdots,f_{_{\,n}}^A\}
∑A={f1A,f2A,⋯,fnA};
B
=
<
S
B
,
∑
B
>
B=<S_{_B},\sum_{_B}>
B=<SB,∑B>,
S
B
=
{
S
1
B
,
S
2
B
,
⋯
,
S
n
B
}
S_{_B}=\{S_{_{\,1}}^B,S_{_{\,2}}^B,\cdots,S_{_{\,n}}^B\}
SB={S1B,S2B,⋯,SnB},
∑
B
=
{
f
1
B
,
f
2
B
,
⋯
,
f
n
B
}
\sum_{_B}=\{f_{_{\,1}}^B,f_{_{\,2}}^B,\cdots,f_{_{\,n}}^B\}
∑B={f1B,f2B,⋯,fnB}
h
=
{
f
:
S
i
A
→
S
i
B
∣
1
≤
i
≤
n
}
h=\{f:S_{_{\,i}}^A\to S_{_{\,i}}^B|1\le i\le n\}
h={f:SiA→SiB∣1≤i≤n}
对于映射族h,如果h满足:
对任意
f
i
A
:
∏
x
=
1
k
S
i
x
A
→
S
j
A
\displaystyle{f_{_{\,i}}^A:\prod\limits_{x=1}^kS_{_{ix}}^A\to S_{_{\,j}}^A}
fiA:x=1∏kSixA→SjA都有
h
j
(
f
i
A
(
(
a
1
,
⋯
,
a
k
)
)
)
=
f
i
B
(
h
i
1
(
a
1
)
,
⋯
,
h
i
k
(
a
k
)
)
h_{_j}(f_{_{\;i}}^A((a_{_1},\cdots,a_{_k})))=f_{_{\;i}}^B(h_{_{i1}}(a_{_1}),\cdots,h_{_{ik}}(a_{_k}))
hj(fiA((a1,⋯,ak)))=fiB(hi1(a1),⋯,hik(ak))
则称
h
h
h为代数系统
A
A
A到
B
B
B的同态映射,即
A
A
A与
B
B
B(对于代数运算
∑
A
,
∑
B
\sum_{_A},\sum_{_B}
∑A,∑B)同态。
同态也称为线性同态或者线性映射(linear mapping)。
是指从一个向量空间到另一个向量空间的映射且保持加法运算和数量乘法运算。
如果
h
h
h是一族满射,那么称
A
A
A与
B
B
B满同态。如果是单射,就称
A
A
A与
B
B
B单同态。
如果
h
h
h是一组双射,则称
h
h
h为代数系统
A
A
A到
B
B
B的同构映射,
即
A
A
A与
B
B
B(对于代数运算
∑
A
,
∑
B
\sum_{_A},\sum_{_B}
∑A,∑B)同构。记作
A
≅
B
A\cong B
A≅B。
- 正交 -
平行公理(平行公设)
即欧几里得第五公设,独立于前四条欧几里得公设。
假定所有欧几里得公设成立的几何称为欧氏几何。假定平行公设不成立的几何称为非欧几何。
不依赖于平行公设的几何成为仿射几何。
对于两条直线,确定一条直线和它们相交。
如果某一边的内角和大于两个直角的和,那么这两条直线一定会在这一边相交。
等价于:过直线外的任何一点有且只有一条直线与之平行。
绝对几何公理系统
是接合公理、顺序公理、合同公理和连续公理组成的集合。
满足这四个公理的几何叫做绝对几何。
满足平行公理的绝对几何叫做欧氏几何。
线性变换
一个向量空间到自身的线性映射称为线性变换。
也可以说对于线性映射,当映射关系是线性关系的时候,称线性映射为线性变换。
仿射变换
一个向量空间经过一次非奇异线性变换和平移变为另一个向量空间。
简单地说就是可以倾斜、可以在两个方向上任意伸缩。可知仿射变换是线性映射。
仿射变换保留了:
Ⅰ 凸性;
Ⅱ 共线性;
Ⅲ 平行性
Ⅳ 共线比例不变性
Ⅴ 质心
我们可以把仿射变换表示为
y
→
=
f
(
x
→
)
=
A
x
→
+
b
→
\overrightarrow{y}=f(\overrightarrow{x})=\mathbf{A}\overrightarrow{x}+\overrightarrow{b}
y=f(x)=Ax+b
其中映射
f
f
f指仿射变换,矩阵
A
\mathbf A
A指线性变换,
b
→
\overrightarrow{b}
b指平移。
仿射变换
f
f
f可逆当且仅当
A
\mathbf A
A可逆。
2D 仿射变换的变换矩阵
3D 仿射变换的变换矩阵
内积空间
内积空间是增添了一个额外结构的矢量空间。这个额外的结构叫做内积。
内积将一对矢量与一个标量连接起来,
这允许我们严格地谈论矢量的“夹角”和“长度”,并进一步谈论矢量的正交性。
正交
垂直的推广。最直观的推广是到n维欧氏空间;
一般的希尔伯特空间也有内积的概念,所以也可以定义正交。
定义:若内积空间中两向量的内积为0,则称它们是正交的。
如果能够定义向量间的夹角,正交可以直观理解为垂直。
基(基底)
向量空间的基是它的一个特殊的子集,基的元素称为基向量。
向量空间中任意一个元素,都可以唯一地表示成基向量的线性组合。
若基中元素个数有限,则称向量空间为有限维向量空间,将元素的个数称作向量空间的维数。
正交基
一个内积空间的正交基是元素两两正交的基。
标准正交基
如果一个正交基的基向量的模长都是单位长度
+
1
+1
+1,称该正交基为标准正交基。
正交变换
正交变换是线性变换的一种。
它从实内积空间
V
V
V映射到自身,保持内积不变。
因为向量的模长与夹角都是用内积定义的,
所以:正交变换前后一对向量各自的模长和它们的夹角都不变。
特别地,标准正交基经正交变换后仍为标准正交基。
正交变换的逆也是正交变换,并且后者的矩阵表示是前者的矩阵表示的逆。
在有限维空间
V
V
V中,正交变换在标准正交基下的矩阵表示为正交矩阵。
其所有行和所有列也都各自构成
V
V
V的一组标准正交基。
因为正交矩阵的行列式只可能为 + 1 +1 +1或 − 1 −1 −1,故正交变换的行列式为 + 1 +1 +1或 − 1 −1 −1。
设
A
\mathbf A
A是
n
n
n维欧氏空间
V
V
V的一个正交变换
σ
\sigma
σ在一组标准正交基下的矩阵:
若
det
(
A
)
=
1
\det(\mathbf A)=1
det(A)=1,称
σ
\sigma
σ为第一类正交变换(对应旋转变换)。
若
det
(
A
)
=
−
1
\det(\mathbf A)=-1
det(A)=−1,称
σ
\sigma
σ为第二类正交变换(对应瑕旋转变换)。
可见,欧几里得空间中的正交变换只包含旋转、反射及它们的组合(即瑕旋转)。
(PS:瑕旋转(旋转反射),是一种“旋转后再反射”的线性变换或仿射变换。)
作为一个保距映射,瑕旋转的变换矩阵的是行列式值为
−
1
-1
−1的正交矩阵。
正交矩阵
n
n
n阶实方阵
A
\mathbf A
A,如果满足
A
A
T
=
E
\mathbf{AA}^\mathrm T=\mathbf E
AAT=E或者
A
T
A
=
E
\mathbf A^\mathrm T\mathbf A=\mathbf E
ATA=E,称为正交矩阵。
其中E为单位矩阵。
向量与正交矩阵的运算将不会改变向量的欧氏范数(ℓ2范数);
当且仅当矩阵是正交矩阵时,它的逆矩阵同时是它的转置矩阵。
正交矩阵的行列式为+1或-1。
正交矩阵的各行(列)是两两正交的单位向量。
注意:矩阵和向量的“正交”不同。
一个正交矩阵对应的变换叫正交变换。正交变换包括旋转、轴对称和它们的复合。
如果行列式为+1,那么其对应的变换是旋转;
如果行列式为-1,那么其对应的变换是轴对称和旋转的复合。
- 特征值&特征向量&特征子空间 -
对于矩阵
A
\mathbf A
A,存在常数
μ
\mu
μ、和
x
→
≠
0
→
\overrightarrow x\ne\overrightarrow0
x=0,满足
A
x
→
=
μ
x
→
\mathbf A\overrightarrow x=\mu\overrightarrow x
Ax=μx
那么
μ
\mu
μ称为
A
\mathbf A
A的特征值,
x
→
\overrightarrow x
x是
A
\mathbf A
A的一个特征向量。
A
\mathbf A
A的所有特征值的全体称为
A
\mathbf A
A的谱,记作
μ
(
A
)
\mu(\mathbf A)
μ(A)。
对于矩阵
A
\mathbf A
A,其特征值的绝对值的最大值称为其谱半径
ρ
(
A
)
=
max
1
≤
i
≤
n
∣
λ
i
∣
\rho(\mathbf A)=\max\limits_{1\le i\le n}|\lambda_{_i}|
ρ(A)=1≤i≤nmax∣λi∣。
因为
A
x
→
=
λ
i
x
→
\mathbf A\overrightarrow x=\lambda_{_i}\overrightarrow x
Ax=λix,有
(
A
−
λ
i
E
)
x
→
=
0
(\mathbf A-\lambda_{_i}\mathbf E)\overrightarrow x=0
(A−λiE)x=0。又
x
→
≠
0
\overrightarrow x\ne0
x=0则
∣
A
−
λ
i
E
∣
=
0
|\mathbf A-\lambda_{_i}\mathbf E|=0
∣A−λiE∣=0。
称
∣
A
−
λ
i
E
∣
|\mathbf A-\lambda_{_i}\mathbf E|
∣A−λiE∣为特征多项式,
∣
A
−
λ
i
E
∣
=
0
|\mathbf A-\lambda_{_i}\mathbf E|=0
∣A−λiE∣=0为特征方程。
韦达定理的推广:
复数范围内, ∑ i = 0 n a i x i = 0 \displaystyle\sum\limits_{i=0}^na_ix^i=0 i=0∑naixi=0的解为 x 1 ⋯ x n x_1\cdots x_n x1⋯xn
那么 ∑ i = 1 n x i = − a n − 1 a n {\displaystyle\sum\limits_{i=1}^nx_i=-\cfrac{a_{_{\mathcal n-1}}}{a_{_{\mathcal n}}}} i=1∑nxi=−anan−1; ∏ i = 1 n x i = ( − 1 ) n a 0 a n {\displaystyle\prod\limits_{i=1}^nx_i=(-1)^n\cfrac{a_{_\mathcal 0}}{a_{_n}}} i=1∏nxi=(−1)nana0
推论:
Ⅰ 特征多项式 f ( λ ) = ( − λ ) n + t r ( A ) ⋅ ( − λ ) n − 1 + ⋯ + det ( A ) f(\lambda)=(-\lambda)^n+\mathrm{tr}(\mathbf A)\cdot(-\lambda)^{n-1}+\cdots+\det(\mathbf A) f(λ)=(−λ)n+tr(A)⋅(−λ)n−1+⋯+det(A)。省略掉的一般用不到。
Ⅱ ∑ j = 1 m λ j = ∑ i = 1 n A i i \sum\limits_{j=1}^m\lambda_j=\sum\limits_{i=1}^n\mathbf A_{ii} j=1∑mλj=i=1∑nAii
Ⅲ ∏ j = 1 m λ j = det ( A ) \prod\limits_{j=1}^m\lambda_j=\det(\mathbf A) j=1∏mλj=det(A)。则可知: n n n阶方阵 A \mathbf A A可逆的充要条件是其 n n n个特征值非 0 0 0。
Ⅳ 特征值相同 ⇔ \Leftrightarrow ⇔特征多项式相同
特征值求解:
Ⅰ 由 f ( λ ) = 0 f(\lambda)=0 f(λ)=0求出所有特征值;
Ⅱ 代入特征方程求得基础解系(要保证其中的解向量线性无关)
(化成行最简没有自由变元,解向量 0 → \overrightarrow 0 0;)
(否则有几个自由变元,就取几组线性无关的值代入自由变元求解)
n n n阶方阵 A \mathbf A A的属于特征值 λ i \lambda_{_i} λi的特征向量组成齐次线性方程组(常数项全为 0 0 0的方程组)
就是说,特征向量同时是齐次线性方程组 ( A − λ i E ) x → = 0 (\mathbf A-\lambda_{_i}\mathbf E)\overrightarrow x=0 (A−λiE)x=0的解向量,
且这个齐次线性方程组的基础解系的非零线性组合构成属于特征值 λ i \lambda_{_i} λi的全部特征向量。
性质:矩阵的迹等于特征值的和;行列式等于特征值的积;秩等于非零特征值的个数。
单位化
很简单啊,乘向量模的倒数。
施密特正交化
将任意(线性无关的)向量组化为标准正交向量组。【参考】
核(Ker)
代数空间被映射到零元素的全体元素的集合。【参考】
子空间的直和
对于
V
V
V的子空间
V
1
V_{_1}
V1和
V
2
V_{_2}
V2,记
dim
(
X
)
\dim(X)
dim(X)表示空间
X
X
X的维数,有:
维数公式
dim
(
V
1
)
+
dim
(
V
2
)
=
dim
(
V
)
−
dim
(
V
1
∩
V
2
)
\dim(V_{_1})+\dim(V_{_2})=\dim(V)-\dim(V_{_1}\cap V_{_2})
dim(V1)+dim(V2)=dim(V)−dim(V1∩V2)
设 r = dim ( V 1 ∩ V 2 ) r=\dim(V_{_1}\cap V_{_2}) r=dim(V1∩V2),取 ( V 1 ∩ V 2 ) (V_{_1}\cap V_{_2}) (V1∩V2)的一组规范正交基 α 1 , α 2 , ⋯ , α r \alpha_{_1},\alpha_{_2},\cdots,\alpha_{_r} α1,α2,⋯,αr
(假如不是规范正交基,可以用Gram-Schmidt转换)
可以扩充为 V 1 V_{_1} V1的一组规范正交基: α 1 , ⋯ , α r , β 1 , ⋯ , β s \alpha_{_1},\cdots,\alpha_{_r},\beta_{_1},\cdots,\beta_{_s} α1,⋯,αr,β1,⋯,βs
可以扩充为 V 2 V_{_2} V2的一组规范正交基: α 1 , ⋯ , α r , γ 1 , ⋯ , γ t \alpha_{_1},\cdots,\alpha_{_r},\gamma_{_1},\cdots,\gamma_{_t} α1,⋯,αr,γ1,⋯,γt
剩下的证明
若
dim
(
V
1
∩
V
2
)
=
0
\dim(V_{_1}\cap V_{_2})=0
dim(V1∩V2)=0那么
dim
(
V
1
)
+
dim
(
V
2
)
=
dim
(
V
)
\dim(V_{_1})+\dim(V_{_2})=\dim(V)
dim(V1)+dim(V2)=dim(V),称这样的和为直和。
特征空间(特征子空间):
设域
F
F
F上的向量空间
V
V
V。对于
V
V
V的一个线性变换
A
\mathscr A
A在某组基下的方阵
A
\mathbf A
A,
其对应于特征值
λ
i
\lambda_{_i}
λi的全体特征向量与零向量所成的集合,
称为:
A
\mathbf A
A的属于特征值
λ
i
\lambda_{_i}
λi的特征子空间。
V
V
V的子空间
V
λ
i
=
{
α
→
∈
V
∣
A
(
α
→
)
=
λ
i
(
α
→
)
}
=
K
e
r
(
A
−
λ
i
E
)
V_{_{\lambda_i}}=\{\overrightarrow\alpha\in V|\mathscr A(\overrightarrow\alpha)=\lambda_{_i}(\overrightarrow\alpha)\}=Ker(\mathscr A-\lambda_{_i}\mathbf E)
Vλi={α∈V∣A(α)=λi(α)}=Ker(A−λiE),
称为:
A
\mathscr A
A的属于特征值
λ
i
\lambda_{_i}
λi的特征子空间。
只要求出了特征子空间 V λ i V_{_{\lambda_i}} Vλi的一组基,基向量的全体非零线性组合就是全体特征向量。
对于一个线性变换,
其属于不同特征值的特征子空间之和是直和;
其属于不同特征值的特征向量线性无关。
过渡矩阵
对基
[
α
]
,
[
β
]
[\alpha],[\beta]
[α],[β],它们之间的过渡关系可以表示为:
[
β
]
=
[
α
]
P
[\beta]=[\alpha]\mathbf P
[β]=[α]P,其中
P
\mathbf P
P称为旧基
[
α
]
[\alpha]
[α]到新基
[
β
]
[\beta]
[β]的过渡矩阵。
矩阵相似
对于
n
n
n阶方阵
A
\mathbf A
A和
B
\mathbf B
B,如果存在
n
n
n阶可逆矩阵
P
\mathbf P
P使
P
−
1
A
P
=
B
\mathbf P^{-1}\mathbf{AP}=\mathbf B
P−1AP=B,
称矩阵
A
\mathbf A
A和
B
\mathbf B
B相似,记作
A
∼
B
\mathbf A\thicksim\mathbf B
A∼B。
这是一种等价关系。
定义在集合 A A A上的等价关系 R R R满足自反性、对称性、传递性。
为了方便理解之类, P − 1 A P = B \mathbf P^{-1}\mathbf{AP}=\mathbf B P−1AP=B也记作 P − 1 A P x → = B x → \mathbf P^{-1}\mathbf{AP}\overrightarrow x=\mathbf B\overrightarrow x P−1APx=Bx。
相似的矩阵是一个线性变换在不同基下的矩阵。
一族相似矩阵都是对同一个线性变换的描述。
所以不难理解:相似矩阵有相同的特征向量和特征值。
为什么说相似矩阵是一个线性变换在不同基下的矩阵?
对于 P − 1 A P x → = B x → \mathbf P^{-1}\mathbf{AP}\overrightarrow x=\mathbf B\overrightarrow x P−1APx=Bx, x → \overrightarrow x x是空间 B \mathcal B B的向量;
P x → \mathbf P\overrightarrow x Px:把 x → \overrightarrow x x变换到空间 A \mathcal A A,
A P x → \mathbf{AP}\overrightarrow x APx:在空间 A \mathcal A A对 P x → \mathbf P\overrightarrow x Px进行 A \mathbf A A变换,
P − 1 A P x → \mathbf P^{-1}\mathbf{AP}\overrightarrow x P−1APx:把 A P x → \mathbf{AP}\overrightarrow x APx反变换回空间 B \mathcal B B。
假如这等价于在 B \mathcal B B空间对 x → \overrightarrow x x做 B \mathbf B B变换即 B x → \mathbf B\overrightarrow x Bx,
那么可以理解作 A , B \mathbf{A,B} A,B“本质相同,只是变了一个空间而已”。
两矩阵相似的一个重要的充要条件是:两矩阵同时相似于一个对角矩阵。
直观判断两个矩阵不相似,一般可以利用下面几个矩阵相似的必要条件:
① 特征值相同
② 秩相同
③ 行列式相同
④ 迹相同
注意:就算这四个条件加起来也不能作为判断两矩阵相似的充要条件。
重要性质:
矩阵
A
\mathbf A
A和
B
\mathbf B
B相似,则
B
\mathbf B
B的对角线元素为
A
\mathbf A
A的特征值;
可逆矩阵
P
\mathbf P
P由
A
\mathbf A
A的
n
n
n个线性无关的特征向量作为列向量构成。
推论:若
n
n
n阶方阵有
n
n
n个互不相同的特征值,那么它可对角化(即:与对角矩阵相似)。
或者:若
n
n
n阶方阵有
n
n
n个线性无关的特征向量,那么它可对角化(即:与对角矩阵相似)。
相似矩阵具有相同的可逆性,当它们可逆时,则它们的逆矩阵也相似。
对角化
V
V
V上线性变换
A
\mathscr A
A如果在某组基下的矩阵
A
\mathbf A
A是对角矩阵,就称
A
\mathscr A
A可对角化。
A
\mathscr A
A在基
[
ε
]
[\varepsilon]
[ε]下的矩阵是对角矩阵
⇔
\Leftrightarrow
⇔
[
ε
]
[\varepsilon]
[ε]的向量都是
A
\mathscr A
A的特征向量
⇔
\Leftrightarrow
⇔各特征子空间的直和等于
V
V
V
如果方阵 A \mathbf A A相似于对角矩阵,就称 A \mathbf A A可对角化。
判断矩阵是否可相似对角化(是否有对角矩阵)
Ⅰ 实对称矩阵一定可以对角化
Ⅱ 如果特征值都不同则一定可以对角化
Ⅲ 如果特征值有重根:先算出有重根的特征值对应的特征多项式的秩。
如果代数重数等于矩阵的阶数减去上面提到的秩即 n i = n − r ( λ i E − A ) n_i=n-r(λ_i\mathbf E-\mathbf A) ni=n−r(λiE−A),
此时矩阵的几何重数等于代数重数,这是矩阵可对角化的充要条件。
∃ P − 1 A P \mathbf\exists\mathbf P^{-1}\mathbf{AP} ∃P−1AP是对角矩阵 d i a g ( a 1 , ⋯ , a n ) ⇔ A P i = a i P i diag(a_{_1},\cdots,a_{_n})\Leftrightarrow\mathbf {AP}_{_i}=a_{_i}\mathbf P_{_i} diag(a1,⋯,an)⇔APi=aiPi。
∵ P − 1 A P = d i a g ( a 1 , ⋯ , a n ) \because\mathbf P^{-1}\mathbf{AP}=diag(a_1,\cdots,a_n) ∵P−1AP=diag(a1,⋯,an)
∴ A P = P d i a g ( a 1 , ⋯ , a n ) \therefore\mathbf{AP}=\mathbf Pdiag(a_1,\cdots,a_n) ∴AP=Pdiag(a1,⋯,an)
∴ A ( P 1 , ⋯ , P n ) = ( a 1 P 1 , ⋯ , a n P n ) \therefore\mathbf A(\mathbf P_1,\cdots,\mathbf P_n)=(a_1\mathbf P_1,\cdots,a_n\mathbf P_n) ∴A(P1,⋯,Pn)=(a1P1,⋯,anPn)
∴ A P i = a i P i \therefore\mathbf{AP}_i=a_i\mathbf P_i ∴APi=aiPi
所以:相似矩阵对角线上的元素是原矩阵的特征值,P的列向量是对应的特征向量。
A \mathscr A A可对角化 ⇔ A \Leftrightarrow\mathscr A ⇔A在任何一组基下的矩阵可对角化。
特征值有多少种排列方式,与该矩阵相似的对角矩阵就有几个。
- 矩阵的迹 -
n
n
n阶方阵
A
\mathbf A
A的迹
t
r
(
A
)
=
t
r
A
=
∑
i
=
1
n
A
i
j
\mathrm{tr}(\mathbf A)=\mathrm{tr}\;\mathbf A=\displaystyle\sum\limits_{i=1}^n\mathbf A_{ij}
tr(A)=trA=i=1∑nAij也就是矩阵对角线元素的和。
∀
A
∈
C
m
×
n
,
B
∈
C
n
×
m
\mathbf\forall\mathbf A\in\mathbb C^{m\times n},\mathbf B\in\mathbb C^{n\times m}
∀A∈Cm×n,B∈Cn×m,
t
r
(
A
B
)
=
t
r
(
B
A
)
\mathrm{tr}(\mathbf{AB})=\mathrm{tr}(\mathbf{BA})
tr(AB)=tr(BA)。
- 泛函分析基础&矩阵范数 -
函数空间
从集合
X
X
X到集合
Y
Y
Y的函数的给定种类函数的集合。
数域
对于复数组成的集合(其中包括0与1) P P P:
如果 P P P中任意两个数的和、差、积、商(除数不为 0 0 0)仍是 P P P中的数,则称 P P P为一个数域。
常见数域比如复数域 C \mathbb C C,实数域 R \mathbb R R,有理数域 Q \mathbb Q Q。
任意数域 P P P都包括有理数域 Q \mathbb Q Q。
注意:自然数集 N \N N和整数集 Z \Z Z都不是数域。
如上。
泛函
简单地说,泛函是从任意的向量空间到标量的映射。即:从函数空间到数域的映射。
更简单地说,泛函是“函数的函数”。
比如:定义域是一个函数集,值域是实数集或者实数集的一个子集。这样的函数是泛函。
泛函定义域内的函数为可取函数或容许函数。
对于泛函
T
(
f
(
x
)
)
T(f(x))
T(f(x)),
f
(
x
)
f(x)
f(x)称为泛函
T
T
T的变量函数。
注意:泛函 T ( f ( x ) ) T(f(x)) T(f(x))跟高中初中用的那种 T ( f ( x ) ) T(f(x)) T(f(x))是不一样的。
后面那个是指 y = f ( x ) , T ( f ( x ) ) = T ( y ) y=f(x),T(f(x))=T(y) y=f(x),T(f(x))=T(y)。
大概就是这样啦。
线性泛函
满足:
T
(
x
1
(
t
)
+
x
2
(
t
)
)
=
T
(
x
1
(
t
)
)
+
T
(
x
2
(
t
)
)
T(x_{_1}(t)+x_{_2}(t))=T(x_{_1}(t))+T(x_{_2}(t))
T(x1(t)+x2(t))=T(x1(t))+T(x2(t))
T
(
C
x
(
t
)
)
=
C
T
(
x
(
t
)
)
T(Cx(t))=CT(x(t))
T(Cx(t))=CT(x(t))
的连续泛函
T
T
T。其中
C
C
C为常数。
二次性泛函
满足:
T
(
x
1
(
t
)
+
x
2
(
t
)
)
=
1
2
[
T
(
x
1
(
t
)
+
x
2
(
t
)
)
+
T
(
x
1
(
t
)
−
x
2
(
t
)
)
]
T(x_{_1}(t)+x_{_2}(t))=\dfrac{1}{2}[T(x_{_1}(t)+x_{_2}(t))+T(x_{_1}(t)-x_{_2}(t))]
T(x1(t)+x2(t))=21[T(x1(t)+x2(t))+T(x1(t)−x2(t))]
T
(
C
x
(
t
)
)
=
C
2
T
(
x
(
t
)
)
T(Cx(t))=C^2T(x(t))
T(Cx(t))=C2T(x(t))
的连续泛函
T
T
T。其中
C
C
C为常数。
拓扑空间
设
X
≠
∅
X\ne\varnothing
X=∅,
F
\mathcal{F}
F是
X
X
X的某些子集所组成的集类。如果:
①
∅
∈
F
,
X
∈
F
\varnothing\in\mathcal F,X\in\mathcal F
∅∈F,X∈F
②
F
\mathcal{F}
F中任意个集合的和集属于
F
\mathcal{F}
F
③
F
\mathcal{F}
F中任意个集合的交集属于
F
\mathcal{F}
F
则称
(
X
,
F
)
(X,\mathcal{F})
(X,F)为拓扑空间,称
F
\mathcal{F}
F为
X
X
X上的拓扑,
称
X
X
X中的集合为
(
X
,
F
)
(X,\mathcal{F})
(X,F)的开集,其补集为闭集。
如果一个集合所有的极限点都是这个集合中的点,那么称这个集合为闭集。
当拓扑
F
\mathcal{F}
F明确,也经常简单地说
X
X
X为拓扑空间。
拓扑线性空间
现代数学常见的空间中不仅具有拓扑结构,而且元素之间可以自然地进行线性运算,
其中线性运算关于相应的拓扑还是连续的。
设
C
\mathbb C
C或者
R
\R
R上的线性空间
X
X
X,
F
\mathcal{F}
F是其上的拓扑,如果
① 加法是
X
×
X
→
X
X\times X\to X
X×X→X上的连续映射
② 数乘是
C
×
X
→
X
C\times X\to X
C×X→X上的连续映射
则称
F
\mathcal{F}
F是
X
X
X上的向量拓扑/线性拓扑,
(
X
,
F
)
(X,\mathcal F)
(X,F)是拓扑向量空间/拓扑线性空间
赋范向量空间
设数域
R
\mathbb R
R或
C
\mathbb C
C上的向量空间
V
V
V,在
V
V
V上定义函数
∥
⋅
∥
:
V
→
[
0
,
+
∞
)
\left\|\cdot\right\|:V\to[0,+\infty)
∥⋅∥:V→[0,+∞)。如果该范数满足:
① 正定性(非负性&同一性):
∥
x
∥
≥
0
\left\|\bm x\right\|\ge0
∥x∥≥0且
∥
x
∥
=
0
⇔
x
=
0
\left\|\bm x\right\|=0\Leftrightarrow\bm x=\mathbf 0
∥x∥=0⇔x=0(零向量)
② 齐次性(数乘):
∀
∣
x
∈
V
,
α
∈
F
,
∥
μ
x
∥
=
∣
μ
∣
∥
x
∥
\mathbf\forall|\bm x\in V,\alpha\in F,\left\|\mu\bm x\right\|=|\mu|\left\|\bm x\right\|
∀∣x∈V,α∈F,∥μx∥=∣μ∣∥x∥
③ 直递性(三角不等式):
∀
x
,
y
∈
V
,
∥
x
+
y
∥
≤
∥
x
∥
+
∥
y
∥
\mathbf\forall\bm x,\bm y\in V,\left\|\bm x+\bm y\right\|\le\left\|\bm x\right\|+\left\|\bm y\right\|
∀x,y∈V,∥x+y∥≤∥x∥+∥y∥
那么称二元体
(
V
,
∥
⋅
∥
)
为
(V,\left\|\cdot\right\|)为
(V,∥⋅∥)为赋范向量空间/赋范线性空间。
称
∥
z
∥
\left\|\mathbf z\right\|
∥z∥是向量
z
\mathbf z
z的范数。
当
V
V
V是赋范向量空间时,由范数导出的度量为
ρ
(
x
,
y
)
=
∥
x
−
y
∥
\rho(\bm x,\bm y)=\left\|\bm x-\bm y\right\|
ρ(x,y)=∥x−y∥
此时
V
V
V在此度量意义下是度量空间。所以:赋范向量空间是一种特殊的度量空间。
点列
{
x
n
}
\{\bm x_{_n}\}
{xn}收敛于
x
\bm x
x,即
n
→
+
∞
n\to+\infty
n→+∞,
ρ
(
x
n
,
x
)
=
∥
x
n
−
x
∥
→
0
\rho(\bm x_{_n},\bm x)=\left\|\bm x_{_n}-\bm x\right\|\to 0
ρ(xn,x)=∥xn−x∥→0。
有时称这种收敛为依范数收敛。
范数&半范数
上面给出范数的定义了。
半范数就是去掉
∥
x
∥
=
0
⇔
x
=
0
\left\|\bm x\right\|=0\Leftrightarrow\bm x=\mathbf 0
∥x∥=0⇔x=0这一条限制的范数。
流形(manifold)
这里只简单讲一讲。
流形具有在局部与欧氏空间同胚的空间。
或者说:流形是局部具有欧几里得空间性质的空间。
关于流形就讲到这里。(
这意味着什么?能用欧氏距离来进行距离计算,至少在这些“局部”里面……
那是不是能够在一定程度上降维啊?
我们将低维流形嵌入到高维空间。
此时样本在高维空间的分布虽然复杂,但在局部上仍具有欧氏空间的性质——
因此可以在局部建立降维映射关系,然后再设法将局部映射关系推广到全局。
那么,一些高维的东西,只要降维到二维或者三维就可以可视化了。
相关的应用,比如MDS,比如Isomap,比如LLE。
简单讲一下MDS?
我们首先需要t-SNE将数据点之间的相似度转换为概率。
然后MDE要完成的任务就是:
以距离为标准,将高维坐标中的点投影到低维坐标中,保持彼此之间的相对距离变化最小。
更新的方法是T-SNE,基于分布概率变化最小进行投影
具体过程:若原始空间维数为 m m m,
- 设 b i j = z i T z j b_{ij}=z_i^\mathrm Tz_j bij=ziTzj, d i s t i j 2 = ∥ z i ∥ 2 + ∥ z j ∥ 2 − 2 z i T z j = b i i + b j j − 2 b i j dist_{ij}^2=\left\|\mathbf z_i\right\|^2+\left\|\mathbf z_j\right\|^2-2\mathbf z_i^\mathrm T\mathbf z_j=b_{ii}+b_{jj}-2b_{ij} distij2=∥zi∥2+∥zj∥2−2ziTzj=bii+bjj−2bij
取多个样本,计算 d i s t i ⋅ 2 , d i s t ⋅ j 2 , d i s t ⋅ ⋅ 2 dist_{i\cdot}^2,dist_{\cdot j}^2,dist_{\cdot\cdot}^2 disti⋅2,dist⋅j2,dist⋅⋅2,
具体公式就不列了(- 计算降维后的内积矩阵 B \mathbf B B, B i j = − 1 2 ( d i s t i j 2 − d i s t i ⋅ 2 − d i s t ⋅ j 2 + d i s t ⋅ ⋅ 2 ) \mathbf B_{ij}=-\dfrac{1}{2}(dist_{ij}^2-dist_{i\cdot}^2-dist_{\cdot j}^2+dist_{\cdot\cdot}^2) Bij=−21(distij2−disti⋅2−dist⋅j2+dist⋅⋅2)
- 对 B \mathbf B B做特征值分解
- 取(低维空间维数 n n n)个最大特征值构成对角矩阵 Λ ˉ \bar\Lambda Λˉ,对应的特征向量矩阵 V ˉ \bar\mathrm V Vˉ。
输出:矩阵 V ˉ Λ ˉ 1 / 2 ∈ C m × n \bar\mathrm V\bar\Lambda^{1/2}\in\mathbb C^{m\times n} VˉΛˉ1/2∈Cm×n,每一行是一个样本的低维坐标。
注意MDS是直接计算欧氏距离的。
但是对于高维空间直接计算欧氏距离有很大的误导性。
一个例子是地球上两点间的距离。假如我们是想要得到球面距离,假如算欧氏距离就不对了。
有一个代替方案就是Isomap,但是这样就得算最短路了。
Isomap是全局的,它要找到所有样本全局的最优解,
当数据量很大时或者样本维度很高时,计算量非常大。
因此更常用的算法是LLE(局部线性嵌入)。放弃全局最优,只通过保证局部最优来降维。
常见的流形比如拓扑流形和微分流形。
度量空间
也叫做距离空间,是一种拓扑空间,其上的拓扑由距离决定。
度量空间不一定是线性空间。
设非空集合
V
V
V,
ρ
(
x
,
y
)
\rho(x,y)
ρ(x,y)是
V
V
V上的二元函数,满足:
① 正定性(非负性&同一性):
ρ
(
x
,
y
)
≥
0
\rho(x,y)\ge0
ρ(x,y)≥0;
ρ
(
x
,
y
)
=
0
⇔
x
=
y
\rho(x,y)=0\Leftrightarrow x=y
ρ(x,y)=0⇔x=y
② 对称性:
ρ
(
x
,
y
)
=
ρ
(
y
,
x
)
\rho(x,y)=\rho(y,x)
ρ(x,y)=ρ(y,x)
③ 直递性:
ρ
(
x
,
z
)
≤
ρ
(
x
,
y
)
+
ρ
(
y
,
z
)
\rho(x,z)\le\rho(x,y)+\rho(y,z)
ρ(x,z)≤ρ(x,y)+ρ(y,z)
则称
ρ
(
x
,
y
)
\rho(x,y)
ρ(x,y)为
x
,
y
x,y
x,y之间的距离,也称为距离函数或者度量。
称二元体
(
V
,
ρ
)
(V,\rho)
(V,ρ)为一个度量空间,或者称
V
V
V为一个对于度量
ρ
\rho
ρ而言的度量空间。
相似性
s
i
m
(
x
,
y
)
∈
[
0
,
1
]
\mathrm{sim}(x,y)\in[0,1]
sim(x,y)∈[0,1]。
s
i
m
(
x
,
y
)
=
0
\mathrm{sim}(x,y)=0
sim(x,y)=0当且仅当
x
x
x和
y
y
y完全不一样,
s
i
m
(
x
,
y
)
=
0
\mathrm{sim}(x,y)=0
sim(x,y)=0当且仅当
x
=
y
x=y
x=y。
然后就不难意会了。通常用距离定义相似性,比如
s
i
m
=
1
d
i
s
t
\mathrm{sim}=\dfrac{1}{\mathrm{dist}}
sim=dist1或者
s
i
m
=
1
−
d
i
s
t
\mathrm{sim}=1-\mathrm{dist}
sim=1−dist。
范数
前面其实已经讲过范数了,在这里再次做简单的解释。
距离:有非负性、同一性、对称性、直递性(三角不等式)
范数:强化了的距离概念,它在定义上比距离多了一条数乘的运算法则。(即有齐次性)
范数可以诱导(推出)度量,度量又可以诱导拓扑。范数
⇒
\Rightarrow
⇒度量
⇒
\Rightarrow
⇒拓扑。
范数满足平行四边形公式
∥
x
+
y
∥
2
+
∥
x
−
y
∥
2
=
2
(
∥
x
∥
2
+
∥
y
∥
2
)
\left\|x+y\right\|^2+\left\|x-y\right\|^2=2(\left\|x\right\|^2+\left\|y\right\|^2)
∥x+y∥2+∥x−y∥2=2(∥x∥2+∥y∥2)时可以诱导内积。
在数学上,范数包括向量范数和矩阵范数。
向量范数表示向量空间中向量的大小,矩阵范数表示矩阵引起变化的大小。
矩阵范数可能不太好理解?——我们知道可以对向量进行矩阵变换,
对
A
x
→
=
b
→
\mathbf A\overrightarrow x=\overrightarrow b
Ax=b,
A
\mathbf A
A的矩阵范数
∥
A
∥
\left\|\mathbf A\right\|
∥A∥就是用来度量这个变化的大小的。
矩阵范数一般还满足相容性
∥
X
Y
∥
≤
∥
X
∥
∥
Y
∥
\left\|\mathbf{XY}\right\|\le\left\|\mathbf X\right\|\left\|\mathbf Y\right\|
∥XY∥≤∥X∥∥Y∥,所以通常也叫做相容范数。
把矩阵看作线性算子,那么可以由向量范数诱导出矩阵范数。
所以我们可以用向量范数来推导矩阵范数。
不过有些矩阵范数不可以由向量范数来诱导,比如F-范数。
向量p范数ℓp
ℓ p \ell_p ℓp指的是一组范数。 p ∈ [ 1 , + ∞ ) p\in[1,+\infty) p∈[1,+∞)。
定义
ℓ
p
=
∥
x
→
∥
p
=
∑
i
=
1
n
∣
x
i
∣
p
p
\ell_p=\displaystyle{\left\|\overrightarrow x\right\|_p=\sqrt[p]{\sum\limits_{i=1}^n|x_i|^p}}
ℓp=∥∥∥x∥∥∥p=pi=1∑n∣xi∣p,其中
x
→
=
(
x
1
,
x
2
,
⋯
,
x
n
)
\overrightarrow x=(x_1,x_2,\cdots,x_n)
x=(x1,x2,⋯,xn)。
即向量所有元素绝对值的p次方的和的1/p次幂。
定义域如此是因为
p
∈
[
0
,
1
)
p\in[0,1)
p∈[0,1)的时候,
ℓ
p
\ell_p
ℓp不满足三角不等式,就不向量了。
向量0范数ℓ0
ℓ
0
\ell_0
ℓ0并不是真正的范数。根据
ℓ
p
\ell_p
ℓp的定义,
ℓ
0
\ell_0
ℓ0定义为
ℓ
0
=
∥
x
→
∥
0
=
∑
i
=
1
n
x
i
0
0
\ell_0=\displaystyle{\left\|\overrightarrow x\right\|_0=\sqrt[0]{\sum\limits_{i=1}^nx_i^0}}
ℓ0=∥∥∥x∥∥∥0=0i=1∑nxi0
开零次方当然没有意义。实际上
ℓ
0
\ell_0
ℓ0的定义是:向量
x
→
\overrightarrow x
x中非零元素的个数。
对于 ℓ 0 \ell_0 ℓ0,其优化问题:
min { ℓ 0 } \min{\{\ell_0\}} min{ℓ0}
s . t . A x → = b → s.t.\quad\mathbf A\overrightarrow x=\overrightarrow b s.t.Ax=b
ℓ
0
\ell_0
ℓ0不容易给出一个好的数学表示形式,它的优化问题难以被形式化表示,
ℓ
0
\ell_0
ℓ0的优化问题是NP-hard的。通常会被放宽为
ℓ
1
\ell_1
ℓ1或者
ℓ
2
\ell_2
ℓ2的优化问题。
向量1范数(曼哈顿范数)ℓ1
ℓ
1
=
∥
x
→
∥
1
=
∑
i
=
1
n
x
i
\ell_1=\displaystyle{\left\|\overrightarrow x\right\|_1=\sum\limits_{i=1}^nx_i}
ℓ1=∥∥∥x∥∥∥1=i=1∑nxi
经典例子是曼哈顿距离。
对于 ℓ 1 \ell_1 ℓ1,其优化问题:
min { ℓ 1 } \min\{\ell_1\} min{ℓ1}
s . t . A x → = b → s.t.\quad\mathbf A\overrightarrow x=\overrightarrow b s.t.Ax=b
由于
ℓ
1
\ell_1
ℓ1的性质,其优化问题的解是稀疏解,因此L1范数也被叫做稀疏规则算子。
于是通过
ℓ
1
\ell_1
ℓ1可以实现特征的稀疏,过滤无效信息。
向量2范数(欧氏范数)ℓ2
经典例子是欧氏距离。 ℓ 2 = ∥ x → ∥ 2 = ∑ i = 1 n x i 2 \ell_2=\displaystyle{\left\|\overrightarrow x\right\|_2=\sqrt{\sum\limits_{i=1}^nx_i^2}} ℓ2=∥∥∥x∥∥∥2=i=1∑nxi2
对于 ℓ 2 \ell_2 ℓ2,其优化问题:
min { ℓ 2 } \min\{\ell_2\} min{ℓ2}
s . t . A x → = b → s.t.\quad\mathbf A\overrightarrow x=\overrightarrow b s.t.Ax=b
\;
向量
−
∞
\scriptsize{\bm{-\infty}}
−∞范数
向量所有元素绝对值中的最大值。
向量
−
∞
\scriptsize{\bm{-\infty}}
−∞范数
向量所有元素绝对值中的最小值。
矩阵范数
对于矩阵,
F-范数(Frobenius范数):矩阵所有元素绝对值的平方和的1/2次幂。
1-范数(列和范数):矩阵所有列向量绝对值之和的最大值。
2-范数(谱范数):矩阵
A
T
A
\mathbf A^\mathrm T\mathbf A
ATA的最大特征值的1/2次幂。
∞-范数(行和范数):矩阵所有行向量绝对值之和的最大值。
F-范数形如: ∥ A ∥ F = ∑ i = 1 m ∑ j = 1 n ∣ A i j ∣ 2 \displaystyle{\left\|\mathbf A\right\|_\mathrm F=\sqrt{\sum\limits_{i=1}^m\sum\limits_{j=1}^n|\mathbf A_{ij}|^2}} ∥A∥F=i=1∑mj=1∑n∣Aij∣2
- 凸优化 -
定义:要求目标函数是凸函数,变量所属集合是凸集合的优化问题。
对于凸优化问题来说,局部最优解就是全局最优解。
常见的凸优化问题【参考】:
线性规划(LP, Linear Programming)
二次规划(QP, Quadratic Programming)
二次约束的二次规划(QCQP, Quadratically Constrained Quadratic Programming)
半正定规划(SDP, Semidefinite Programming)
- 特征值分解&奇异值分解 -
特征值分解(谱分解)
也叫做特征分解。对于一个可对角化矩阵:
先对角化。然后把特征值从左上到右下从大到小排列。
可以看作是提取特征,然后将特征按重要程度排序。
奇异值分解(SVD)
特征值分解在任意矩阵上的推广。
- 范德蒙德矩阵 -
一种各列为几何级数的
n
n
n阶方阵。
形如
V
=
(
V
i
j
=
α
i
j
−
1
)
n
×
n
=
[
1
x
1
⋯
x
1
n
−
1
1
x
2
⋯
x
2
n
−
1
⋮
⋮
⋱
⋮
1
x
n
⋯
x
n
n
−
1
]
\mathbf V=(\mathbf V_{ij}=\alpha_{_i}^{_{^{j-1}}})_{n\times n}=\left[ \begin{array}{ccc} 1 & x_{_1} & \cdots & x_{_1}^{_{n-1}} \\ 1 & x_{_2} & \cdots & x_{_2}^{_{n-1}} \\ \vdots & \vdots & \ddots & \vdots \\ 1 & x_{_n} & \cdots & x_{_n}^{_{n-1}} \end{array}\right]
V=(Vij=αij−1)n×n=⎣⎢⎢⎢⎡11⋮1x1x2⋮xn⋯⋯⋱⋯x1n−1x2n−1⋮xnn−1⎦⎥⎥⎥⎤
乘上一个范德蒙德矩阵的逆矩阵相当于代进去
n
n
n个点进行求值;
乘上一个范德蒙德矩阵相当于用
n
n
n个点插值。
- 范德蒙德行列式 -
形如 V ( x 1 , x 2 , ⋯ , x n ) = ∣ 1 1 ⋯ 1 x 1 x 2 ⋯ x n ⋮ ⋮ ⋱ ⋮ x 1 n − 1 x 2 n − 1 ⋯ x n n − 1 ∣ \displaystyle{V(x_{_1},x_{_2},\cdots,x_{_n})=\left| \begin{array}{ccc} 1 & 1 & \cdots & 1 \\ x_{_1} & x_{_2} & \cdots & x_{_n} \\ \vdots & \vdots & \ddots & \vdots \\ x_{_1}^{_{n-1}} & x_{_2}^{_{n-1}} & \cdots & x_{_n}^{_{n-1}} \end{array} \right|} V(x1,x2,⋯,xn)=∣∣∣∣∣∣∣∣∣1x1⋮x1n−11x2⋮x2n−1⋯⋯⋱⋯1xn⋮xnn−1∣∣∣∣∣∣∣∣∣
性质: V ( x 1 , x 2 , ⋯ , x n ) = ∏ 1 ≤ i < j ≤ n ( x i − x j ) \displaystyle{V(x_{_1},x_{_2},\cdots,x_{_n})=\prod\limits_{1\le i<j\le n}(x_{_i}-x_{_j})} V(x1,x2,⋯,xn)=1≤i<j≤n∏(xi−xj),可以用数学归纳法证明。
- 高斯消元 -
单位矩阵
- 线性基 -
- 一些常用的东西
不定积分/原函数/反函数: F ′ ( x ) = f ( x ) F'(x)=f(x) F′(x)=f(x)
牛顿-莱布尼茨公式: ∫ a b f ( x ) d x = F ( x ) ∣ a b \displaystyle{\int_a^bf(x)dx=F(x)|_a^b} ∫abf(x)dx=F(x)∣ab
常用导数表
( C ) ′ = 0 (\mathrm C)'=0 (C)′=0
( x μ ) ′ = μ x μ − 1 (x^\mu)'=\mu x^{\mu-1} (xμ)′=μxμ−1
sin ′ ( x ) = cos ( x ) \sin'(x)=\cos(x) sin′(x)=cos(x)
cos ′ ( x ) = − sin ( x ) \cos'(x)=-\sin(x) cos′(x)=−sin(x)
( a x ) ′ = a x ln a (a^x)'=a^x\ln a (ax)′=axlna
( e x ) ′ = e x (e^x)'=e^x (ex)′=ex
( log a x ) ′ = 1 x ln a (\log_ax)'=\cfrac{1}{x\ln a} (logax)′=xlna1
( ln x ) ′ = 1 x (\ln x)'=\cfrac{1}{x} (lnx)′=x1
arcsin ′ ( x ) = 1 1 − x 2 \arcsin'(x)=\cfrac{1}{\sqrt{1-x^2}} arcsin′(x)=1−x21
arccos ′ ( x ) = − arcsin ′ ( x ) = − 1 1 − x 2 \arccos'(x)=-\arcsin'(x)=-\cfrac{1}{\sqrt{1-x^2}} arccos′(x)=−arcsin′(x)=−1−x21
arctan ′ ( x ) = 1 1 + x 2 \arctan'(x)=\cfrac{1}{1+x^2} arctan′(x)=1+x21
设u=u(x),v=v(x)可导,C为常数。则:
( u ± v ) ′ = u ′ ± v ′ (u\pm v)'=u'\pm v' (u±v)′=u′±v′
( C ∗ u ′ ) = C ∗ u ′ (\mathrm C*u')=\mathrm C*u' (C∗u′)=C∗u′
( u v ) ′ = u ′ v + u v ′ (uv)'=u'v+uv' (uv)′=u′v+uv′
( u v ) ′ = u ′ v − u v ′ v 2 \left(\dfrac{u}{v}\right)'=\cfrac{u'v-uv'}{v^2} (vu)′=v2u′v−uv′
设u=u(x),v=v(x)在点x有n阶导数。则:
( u ± v ) ( n ) = u ( n ) ± v ( n ) (u\pm v)^{(n)}=u^{(n)}\pm v^{(n)} (u±v)(n)=u(n)±v(n)
( u v ) ( n ) = ∑ k = 0 n C n k u ( n − k ) v ( k ) (uv)^{(n)}=\displaystyle\sum\limits_{k=0}^nC_n^ku^{(n-k)}v^{(k)} (uv)(n)=k=0∑nCnku(n−k)v(k)
常用高阶导数
( a x ) ( n ) = a x ( ln a ) ( n ) (a^x)^{(n)}=a^x(\ln a)^{(n)} (ax)(n)=ax(lna)(n)
( e x ) ( n ) = e x (e^x)^{(n)}=e^x (ex)(n)=ex
sin ( n ) ( x ) = s i n ( x + n π 2 ) \sin^{(n)}(x)=sin\left(x+\dfrac{n\pi}{2}\right) sin(n)(x)=sin(x+2nπ)
cos ( n ) ( x ) = c o s ( x + n π 2 ) \cos^{(n)}(x)=cos\left(x+\dfrac{n\pi}{2}\right) cos(n)(x)=cos(x+2nπ)
[ ln ( 1 + x ) ] ( n ) = ( − 1 ) n − 1 ( n − 1 ) ! ( 1 + x ) n [\ln(1+x)]^{(n)}=(-1)^{n-1}\cfrac{(n-1)!}{(1+x)^n} [ln(1+x)](n)=(−1)n−1(1+x)n(n−1)!
常用麦克劳林展开式
e x = ∑ n = 0 ∞ x n n ! e^x=\displaystyle\sum\limits_{n=0}^\infty\cfrac{x^n}{n!} ex=n=0∑∞n!xn
sin ( x ) = ∑ n = 0 ∞ ( − 1 ) n ⋅ x 2 n + 1 ( 2 n + 1 ) ! \sin(x)=\displaystyle\sum\limits_{n=0}^\infty(-1)^n\cdot\cfrac{x^{2n+1}}{(2n+1)!} sin(x)=n=0∑∞(−1)n⋅(2n+1)!x2n+1
cos ( x ) = ∑ n = 0 ∞ ( − 1 ) n ⋅ x 2 n ( 2 n ) ! \cos(x)=\displaystyle\sum\limits_{n=0}^\infty(-1)^n\cdot\cfrac{x^{2n}}{(2n)!} cos(x)=n=0∑∞(−1)n⋅(2n)!x2n
ln ( 1 + x ) = ∑ n = 1 ∞ ( − 1 ) n − 1 ⋅ x n n \ln(1+x)=\displaystyle\sum\limits_{n=1}^\infty(-1)^{n-1}\cdot\cfrac{x^n}{n} ln(1+x)=n=1∑∞(−1)n−1⋅nxn
- 偏导数
可以认为:偏导数相当于多元函数的导数。我们可以用它来研究多元函数的变化率。
函数沿坐标轴的不同方向有不同的偏导数,比如说
x
x
x方向的偏导记作
f
x
′
=
∂
f
∂
x
f'_x=\frac{\partial f}{\partial x}
fx′=∂x∂f。
偏导数的几何意义,举个例子:
f
x
′
(
x
0
,
y
0
)
f'_x(x_{_0},y_{_0})
fx′(x0,y0)表示固定面上一点对
x
x
x轴的切线斜率;
f
y
′
(
x
0
,
y
0
)
f'_y(x_{_0},y_{_0})
fy′(x0,y0)表示固定面上一点对
y
y
y轴的切线斜率。
不过不一定讲的都是抽象代数的东西
(其实大多数都不是(逃
- 集合 -
翻高中数学书,必修一就有。
一般记作
S
=
{
x
∣
f
(
x
)
∈
A
}
S=\{x|f(x)\in A\}
S={x∣f(x)∈A}之类的形式。
至少在ZF公理系统内,真集不是集合。
ZF公理系统规定了,一个集合应当不属于自身。
- 笛卡尔乘积(直积)-
集合
X
X
X和
Y
Y
Y的直积
X
×
Y
=
{
(
a
,
b
)
∣
a
∈
X
,
b
∈
Y
}
X\times Y=\{(a,b)|a\in X,b\in Y\}
X×Y={(a,b)∣a∈X,b∈Y}
笛卡尔乘积不一定满足交换律;通常不满足结合律。对集合并、集合交运算满足分配率律。
任何集合和空集的直积为空集。
- 代数运算 -
对于
m
m
m个集合
S
1
,
S
2
,
⋯
S
m
S_{_1},S_{_2},\cdots S_{_m}
S1,S2,⋯Sm(
m
>
0
m>0
m>0)
定义
∏
i
=
1
m
S
i
\displaystyle{\prod\limits_{i=1}^mS_{_i}}
i=1∏mSi到
S
S
S的映射
f
:
∏
i
=
1
m
S
i
→
S
\displaystyle{f:\prod\limits_{i=1}^mS_{_i}\to S}
f:i=1∏mSi→S为m元代数运算
- 代数系统(代数)-
m
m
m个集合
S
1
,
S
2
,
⋯
,
S
m
S_{_1},S_{_2},\cdots,S_{_m}
S1,S2,⋯,Sm(
m
>
0
m>0
m>0)与其上的
m
m
m个代数运算
f
1
,
f
2
,
⋯
,
f
m
f_{_1},f_{_2},\cdots,f_{_m}
f1,f2,⋯,fm(
m
>
0
m>0
m>0)
组成一个代数系统,也称代数,记为
<
S
1
,
S
2
,
⋯
,
S
n
,
f
1
,
f
2
,
⋯
,
f
m
>
<S_{_1},S_{_2},\cdots,S_{_n},f_{_1},f_{_2},\cdots,f_{_m}>
<S1,S2,⋯,Sn,f1,f2,⋯,fm>
例如:
<
Z
,
+
,
×
>
<Z,+,\times>
<Z,+,×>
称一个代数系统中的运算所具有的性质为这个代数系统的性质。
这些性质规定了运算。其中的基本性质称为公理,可以用方程组的形式表示出来。
一组公理也规定了一个代数系统,称这样的(由公理确定的)代数系统为抽象代数系统。
满足公理的任何代数系统中,由公理得到的结论成立。
抽象代数研究的就是抽象代数系统中的问题,主要有三个:
①满足某组公理的代数系统是否存在?(存在问题)
②如果存在,有几个这样的代数系统?(数量问题)
③这样的代数系统的结构是什么?(构造问题)
- 子代数 -
如果有
∀
1
≤
i
≤
n
,
S
i
B
⊆
S
i
A
\mathbf\forall1\le i\le n,S_{_{\,i}}^B\subseteq S_{_{\,i}}^A
∀1≤i≤n,SiB⊆SiA;
并且
∀
1
≤
i
≤
m
,
f
i
A
:
∏
x
=
1
k
S
i
x
A
→
S
j
A
\mathbf\forall 1\le i\le m,\displaystyle{f_{_{\,i}}^A:\prod\limits_{x=1}^kS_{_{ix}}^A\to S_{_{\,j}}^A}
∀1≤i≤m,fiA:x=1∏kSixA→SjA,有
f
i
B
:
∏
x
=
1
k
S
i
x
A
→
S
j
B
\displaystyle{f_{_{\,i}}^B:\prod\limits_{x=1}^kS_{_{ix}}^A\to S_{_{\,j}}^B}
fiB:x=1∏kSixA→SjB
那么 < S A , ∑ A > <S_{_A},\sum_{_A}> <SA,∑A>称为 < S B , ∑ B > <S_{_B},\sum_{_B}> <SB,∑B>的一个子代数
- 同余关系 -
设
∼
\thicksim
∼是代数
A
=
<
S
,
×
,
Δ
>
A=<S,\times,\Delta>
A=<S,×,Δ>的载体
S
S
S上的等价关系。
∀
a
,
b
,
c
∈
S
\mathbf\forall a,b,c\in S
∀a,b,c∈S,
a
∼
b
a\thicksim b
a∼b:
① 如果
a
c
∼
b
c
,
c
a
∼
c
b
ac\thicksim bc,ca\thicksim cb
ac∼bc,ca∼cb,称等价关系
∼
\thicksim
∼在运算
×
\times
×下具有置换性质或者说仍能保持。
并且称
∼
\thicksim
∼是关于
×
\times
×的同余关系。
② 如果
Δ
a
∼
Δ
b
\Delta a\thicksim\Delta b
Δa∼Δb,那么称等价关系
∼
\thicksim
∼在运算
Δ
\Delta
Δ下具有置换性质,或者说仍能保持。
并且称
∼
\thicksim
∼是关于
Δ
\Delta
Δ的同余关系。
- 一致关系&商代数 -
与商代数相关的还有商集、商群和商范畴等等。都不在这里具体展开。
简单介绍一下商集:
设
∼
\thicksim
∼是非空集合
A
A
A上的等价关系,
把
A
A
A关于
∼
\thicksim
∼的全部等价类作为元素组成一个新的集合
B
B
B
那么
B
B
B是
A
A
A关于
∼
\thicksim
∼的商集合(商集),记作
B
=
A
/
∼
B=A/\thicksim
B=A/∼
利用选择公理(AC),
那么我们可以从商集的每个元素
A
m
A_{_m}
Am里面取一个元素
a
m
∈
A
m
a_{_m}\in A_{_m}
am∈Am作为商集元素
A
m
A_{_m}
Am的代表,
并且
{
a
m
}
\{a_{_m}\}
{am}称为商集的代表集。
- 群 -
若集合 G ≠ ∅ \mathrm G\ne\varnothing G=∅,且集合 G \mathrm G G上的二元运算 ⋅ : G × G ↦ G \cdot:\mathrm G\times\mathrm G\mapsto\mathrm G ⋅:G×G↦G构成的代数结构 < G , ⋅ > <\mathrm G,\cdot> <G,⋅>满足:
- 封闭性: ∀ a , b ∈ G \mathbf\forall a,b\in\mathrm G ∀a,b∈G, a ⋅ b ∈ G \mathrm a\cdot b\in G a⋅b∈G
- 结合律: ∀ a , b , c ∈ G \mathbf\forall a,b,c\in\mathrm G ∀a,b,c∈G, ( a ⋅ b ) ⋅ c = a ⋅ ( b ⋅ c ) (a\cdot b)\cdot c=a\cdot(b\cdot c) (a⋅b)⋅c=a⋅(b⋅c)
- 存在单位元(单位元素/幺元): ∃ e ∈ G \mathbf\exists e\in\mathrm G ∃e∈G使 ∀ a ∈ G \mathbf\forall a\in\mathrm G ∀a∈G有 e ⋅ a = a ⋅ e = a e\cdot a=a\cdot e=a e⋅a=a⋅e=a
- 存在逆元: ∀ a ∈ G \mathbf\forall a\in\mathrm G ∀a∈G, ∃ b ∈ G \mathbf\exists b\in\mathrm G ∃b∈G使 a ⋅ b = b ⋅ a = e a\cdot b=b\cdot a=e a⋅b=b⋅a=e。称 b b b为 a a a的逆元,记作 a − 1 a^{-1} a−1。
逆元有唯一性: a a − 1 = a b ⇒ a − 1 = b aa^{-1}=ab\Rightarrow a^{-1}=b aa−1=ab⇒a−1=b
那么我们将 < G , ⋅ > <\mathrm G,\cdot> <G,⋅>称为一个群或乘法群,这个二元运算称为乘法,其结果称为积。
群上的二元运算也可以被称为加法,则群也可以被称为加法群 < G , + > <\mathrm G,+> <G,+>。
此时我们将该二元运算记作+,那么群元素的运算被记为形如 a + b a+b a+b。
并且通常地、此时该运算满足结合律。
在这种情况下,我们也记群为 < G , ∗ > <\mathrm G,*> <G,∗>,并称其为交换群(Abel群/阿贝尔群/可交换群)
不满足结合律的群则称为非交换群或非阿贝尔群。
半群:满足封闭性、结合律。半群不一定是群,群一定是半群。
有时会直接将
<
G
,
⋅
>
<\mathrm G,\cdot>
<G,⋅>记作
G
\mathrm G
G。
<
G
,
⋅
>
<\mathrm G,\cdot>
<G,⋅>也作
(
G
,
⋅
)
(\mathrm G,\cdot)
(G,⋅)。
直积
对群 G 1 , G 2 \mathrm G_{_1},\mathrm G_{_2} G1,G2,在 G 1 × G 2 \mathrm G_{_1}\times\mathrm G_{_2} G1×G2上定义二元合成:
对 ( x 1 , x 2 ) ∈ ( G 1 , G 2 ) (x_{_1},x_{_2})\in(\mathrm G_{_1},\mathrm G_{_2}) (x1,x2)∈(G1,G2), ( y 1 , y 2 ) ∈ G 1 × G 2 (y_{_1},y_{_2})\in\mathrm G_{_1}\times\mathrm G_{_2} (y1,y2)∈G1×G2,
令 ( x 1 , x 2 ) ⋅ ( y 1 , y 2 ) = ( x 1 ⋅ y 1 , x 2 ⋅ y 2 ) (x_{_1},x_{_2})\cdot(y_{_1},y_{_2})=(x_{_1}\cdot y_{_1},x_{_2}\cdot y_{_2}) (x1,x2)⋅(y1,y2)=(x1⋅y1,x2⋅y2)。
G
1
×
G
2
\mathrm G_{_1}\times\mathrm G_{_2}
G1×G2关于这一合成构成群,称为
G
1
,
G
2
\mathrm G_{_1},\mathrm G_{_2}
G1,G2的直积(直积群)。
如果用加法记号的话就叫做直和;(加法记号一般来说也就在Abel群里面有用到了。)
这里仅讨论群的直积;关于平凡的直积(笛卡尔乘积)见上文。
子群
设
H
\mathrm H
H为
<
G
,
⋅
>
<\mathrm G,\cdot>
<G,⋅>的非空子集。
H
\mathrm H
H为
G
\mathrm G
G的子群当且仅当
H
\mathrm H
H满足下列两个条件之一:
-
∀
a
,
b
∈
H
\mathbf\forall a,b\in\mathrm H
∀a,b∈H,
a
⋅
b
∈
H
a\cdot b\in\mathrm H
a⋅b∈H,
a
−
1
∈
H
a^{-1}\in\mathrm H
a−1∈H
-
∀
a
,
b
∈
H
\mathbf\forall a,b\in\mathrm H
∀a,b∈H,
a
⋅
b
−
1
∈
H
a\cdot b^{-1}\in\mathrm H
a⋅b−1∈H
也可以说,
H
\mathrm H
H为群
G
\mathrm G
G的子群当且仅当
H
\mathrm H
H为
G
\mathrm G
G的子集且存在一个由
H
\mathrm H
H映射到
G
\mathrm G
G的内含同态。
性质:
一个群的子群的单位元也是这个群的单位元。
对于一个群,其两个子群的交集也是这个群的子群。
任何群 < G , ⋅ > <\mathrm G,\cdot> <G,⋅>有两个平凡子群 G \mathrm G G和 { e } \{e\} {e}。( e e e为单位元)
无非平凡子群的群称为单群。
对群
G
\mathrm G
G及其子群
H
\mathrm H
H,如果
∣
G
∣
∣
H
∣
\dfrac{|G|}{|H|}
∣H∣∣G∣是一个有限数,定义
∣
G
∣
∣
H
∣
=
[
G
:
H
]
\dfrac{|G|}{|H|}=[\mathrm G:\mathrm H]
∣H∣∣G∣=[G:H]为
G
\mathrm G
G在
H
\mathrm H
H下的指数。
平凡群
也即
{
e
}
\{e\}
{e}。是交换群。
它的群运算只有
e
+
e
=
e
e+e=e
e+e=e(也作
e
⋅
e
=
e
e\cdot e=e
e⋅e=e);它的单位元恒为
e
e
e。
生成子群/循环子群
> 由一个元素生成的群称为循环群。
群
<
G
,
⋅
>
<\mathrm G,\cdot>
<G,⋅>中,
∀
a
∈
G
\mathbf\forall a\in \mathrm G
∀a∈G有生成子群(循环子群):
<
a
>
=
{
g
k
:
k
≥
1
}
<a>=\{g^k:k\ge1\}
<a>={gk:k≥1}。
我们称
a
a
a为
<
a
>
<a>
<a>的生成元。
变换群
对于集合
S
\mathrm S
S,由它的一一变换(对应/映射)构成的群
G
\mathrm G
G称为变换群
A
(
S
)
A(\mathrm S)
A(S)。
由Cayley定理(它在组合数学中也有应用,不在此阐述)可以得知:
> 任何群都可以看作某个集合上的变换群。
分类:
- 射影变换群,对应射影几何;
- 仿射变换群,对应仿射几何;
- 相似变换群,对应相似几何(抛物几何);
- 正交变换群,对应欧氏几何(度量集合);
{}
置换群
一个
n
n
n个元素的有限集合
S
\mathrm S
S上的变换群称为置换群
S
n
\mathrm S_n
Sn,也叫做n次对称群,其阶数为
n
!
n!
n!。
长度为
2
2
2的轮换称为对换,每个置换都可以表示为对换的乘积。
偶置换:可以表示为偶数个对换的乘积的置换;
奇置换:可以表示为奇数个对换的乘积的置换。
关于Polya定理和Burnside定理的具体内容在下面展开。此处不作过多阐述。
交错群
n
n
n次对称群
S
n
\mathrm S_n
Sn中全部的偶置换构成n次交错群
A
n
A_n
An。其阶数为
1
2
n
!
\dfrac{1}{2}n!
21n!。
5
5
5次及以上的交错群为单群。
对于交换群而言,直和是有限个交换群的直积。直和记作
⨁
\bigoplus
⨁,直积记作
⨂
\bigotimes
⨂。
有限交换群基本定理
有限交换群
G
\mathrm G
G一定同构于若干质数幂阶循环群的直和。
也就是说存在唯一的
{
p
i
}
\{p_i\}
{pi},
{
c
i
}
\{c_i\}
{ci}使
G
∼
⨁
i
Z
/
p
i
c
i
\mathrm G\thicksim\bigoplus\limits_i\Z/p_i^{c_i}
G∼i⨁Z/pici。
有限交换群分解
见离散傅里叶变换(DFT)部分。
群同态
群到群的映射如果能保持两个群的运算规则,那么可以称为群同态。
(如果是一一映射,那么可以称为群同构。)
在群同态中,被映射到单位元(恒等元)的元素构成一个子群,称为同态的核。
- 阶 -
基数指集合的元素数目。
S
\mathrm S
S的基数记为
∣
S
∣
|\mathrm S|
∣S∣。
群
G
\mathrm G
G的元素数目/基数、也称作它的势/阶数/order记作
∣
G
∣
|\mathrm G|
∣G∣。
对于
G
\mathrm G
G中的元素
a
a
a,它的阶
o
(
a
)
o(a)
o(a)等于满足
a
r
=
e
a^r=e
ar=e的
r
m
i
n
r_{min}
rmin。假如
∄
r
\mathbf\nexists r
∄r则
o
(
a
)
=
∞
o(a)=\infty
o(a)=∞
显然有
o
(
a
)
=
∣
<
a
>
∣
o(a)=|<a>|
o(a)=∣<a>∣。
对于群 Z n ∗ = { [ a ] n ∈ Z n : ( a , n ) = 1 } , ∣ Z n ∗ ∣ = ϕ ( n ) \mathbf{Z_n^*}=\{[a]_n\in\mathbf{Z_n}:(a,n)=1\},|\mathbf{Z_n^*}|=\phi(n) Zn∗={[a]n∈Zn:(a,n)=1},∣Zn∗∣=ϕ(n)
o ( a ) o(a) o(a)是满足 a r ≡ 1 ( m o d n ) a^r\equiv1\pmod{n} ar≡1(modn)的 r m i n r_{min} rmin。
我们通常称 Z n ∗ \mathbf{Z_n^*} Zn∗内的 o ( a ) o(a) o(a)为 δ n ( a ) \delta_n(a) δn(a)。
就是说 n > 1 n>1 n>1, ( a , n ) = 1 (a,n)=1 (a,n)=1,使 a r ≡ 1 a^r\equiv1 ar≡1成立的 r m i n = δ n ( a ) r_{min}=\delta_n(a) rmin=δn(a)
我们称阶数(即元素数目)有限的群为有限群,阶数无限的群为无限群。
- 傍集 -
左傍集:
H
≤
G
\mathrm H\le \mathrm G
H≤G,
a
∈
G
a\in\mathrm G
a∈G,集合
H
a
=
{
x
∈
G
∣
∃
h
∈
H
,
a
⋅
h
=
x
}
\mathrm H_a=\{x\in\mathrm G|\mathbf\exists h\in\mathrm H,a\cdot h=x\}
Ha={x∈G∣∃h∈H,a⋅h=x}为
H
\mathrm H
H的一个左傍集
a
H
a\mathrm H
aH
右傍集:
H
≤
G
\mathrm H\le \mathrm G
H≤G,
a
∈
G
a\in\mathrm G
a∈G,集合
H
a
=
{
x
∈
G
∣
∃
h
∈
H
,
h
⋅
a
=
x
}
\mathrm H_a=\{x\in\mathrm G|\mathbf\exists h\in\mathrm H,h\cdot a=x\}
Ha={x∈G∣∃h∈H,h⋅a=x}为
H
\mathrm H
H的一个右傍集
H
a
\mathrm Ha
Ha
有一个结论:
∣
H
∣
=
∣
H
a
∣
|\mathrm H|=|\mathrm H_a|
∣H∣=∣Ha∣
有一个结论:
H
a
=
H
b
\mathrm H_a=\mathrm H_b
Ha=Hb当且仅当
a
b
−
1
∈
H
ab^{-1}\in\mathrm H
ab−1∈H
有一个结论:
H
a
≠
H
b
⇒
H
a
∩
H
b
=
∅
\mathrm H_a\ne\mathrm H_b\Rightarrow \mathrm H_a\cap\mathrm H_b=\varnothing
Ha=Hb⇒Ha∩Hb=∅
有一个定理:
由于
∀
a
∈
G
,
a
∈
H
a
\mathbf\forall a\in\mathrm G,a\in\mathrm H_a
∀a∈G,a∈Ha,显然
G
\mathrm G
G中的每个元素都在某个傍集中。
用
[
G
:
H
]
[\mathrm G:\mathrm H]
[G:H]表示
G
\mathrm G
G不同的傍集数量,也即群的指数数量。
那么有拉格朗日定理(群论):
∣
G
∣
=
∣
H
∣
⋅
[
G
:
H
]
|\mathrm G|=|\mathrm H|\cdot[\mathrm G:\mathrm H]
∣G∣=∣H∣⋅[G:H]
有一个推论:
在群
G
\mathrm G
G中,对于
∀
a
∈
G
\mathbf\forall a\in\mathrm G
∀a∈G有
o
(
a
)
∣
∣
G
∣
o(a)||\mathrm G|
o(a)∣∣G∣。问
o
(
a
)
∣
∣
G
∣
o(a)||G|
o(a)∣∣G∣是什么鬼?:
o
(
a
)
o(a)
o(a)整除
∣
G
∣
|G|
∣G∣
有一个推论:
在群
G
\mathrm G
G中,对于
∀
a
∈
G
\mathbf\forall a\in\mathrm G
∀a∈G有
a
∣
G
∣
=
e
a^{|\mathrm G|}=e
a∣G∣=e(
e
e
e是单位元)
有一个推论:
对于群
G
\mathrm G
G,若
∣
G
∣
|\mathrm G|
∣G∣为素数,那么
G
\mathrm G
G是循环群
欧拉定理的简洁证明
n
∈
N
∗
n\in\N^*
n∈N∗。
定义群
G
=
<
{
x
∣
x
∈
[
1
,
n
]
∩
N
∗
,
(
x
,
n
)
=
1
}
,
⋅
>
\mathrm G=<\{x|x\in[1,n]\cap\N^*,(x,n)=1\},\cdot>
G=<{x∣x∈[1,n]∩N∗,(x,n)=1},⋅>,其乘法是模
n
n
n意义下的乘法。
那么
∣
G
∣
=
ϕ
(
n
)
|\mathrm G|=\phi(n)
∣G∣=ϕ(n)。由拉格朗日定理:
∀
a
∈
G
,
a
ϕ
(
n
)
=
1
\mathbf\forall a\in\mathrm G,a^{\phi(n)}=1
∀a∈G,aϕ(n)=1,可得
a
ϕ
(
n
)
≡
1
(
m
o
d
n
)
a^{\phi(n)}\equiv1\pmod{n}
aϕ(n)≡1(modn)。
- 幂等元 -
- 等价类 -
等价类
等价类运算
- 剩余系(剩余类) -
模n剩余系
既约剩余系
- 整数模n乘法群/模n既约剩余类/整数模n环单位群 -
整数模n环:
Z
/
n
Z
\Z/n\Z
Z/nZ或
Z
/
(
n
)
\Z/(n)
Z/(n)(
n
Z
=
(
n
)
n\Z=(n)
nZ=(n)由
n
n
n的倍数构成),也记作
Z
n
\Z_n
Zn
整数模n环单位群:
(
Z
/
n
Z
)
×
(\Z/n\Z)^\times
(Z/nZ)×或
(
Z
/
n
Z
)
∗
(\Z/n\Z)^*
(Z/nZ)∗等,也记作
Z
n
∗
\Z_n^*
Zn∗
整数模n环单位群的阶数
∣
Z
n
∗
∣
=
ϕ
(
n
)
|\Z_n^*|=\phi(n)
∣Zn∗∣=ϕ(n)
对 n = ∏ i = 1 ω ( n ) p i a i n=\displaystyle\prod\limits_{i=1}^{\omega(n)}{p_i}^{a_i} n=i=1∏ω(n)piai定义卡迈克尔函数 λ ( n ) \lambda(n) λ(n),满足:
n n n为 2 , 4 2,4 2,4以外 2 2 2的次幂则 λ ( n ) = 1 2 ϕ ( n ) \lambda(n)=\dfrac{1}{2}\phi(n) λ(n)=21ϕ(n),否则 λ ( n ) = ϕ ( n ) \lambda(n)=\phi(n) λ(n)=ϕ(n)
性质: λ ( n ) = l c m [ λ ( p 1 a 1 ) , λ ( p 2 a 2 ) , ⋯ λ ( p ω ( n ) a ω ( n ) ) ] \lambda(n)=lcm[\lambda({p_1}^{a_1}),\lambda({p_2}^{a_2}),\cdots\lambda(p_{\omega(n)}^{a_{\omega(n)}})] λ(n)=lcm[λ(p1a1),λ(p2a2),⋯λ(pω(n)aω(n))]
Z n \Z_n Zn为循环群当且仅当 ϕ ( n ) = λ ( n ) \phi(n)=\lambda(n) ϕ(n)=λ(n)。
- 反素数 -
https://blog.csdn.net/my_sunshine26/article/details/72772637
- 原根 -
n
∈
N
∗
n\in\N^*
n∈N∗,
g
∈
Z
g\in\Z
g∈Z,
δ
n
(
g
)
=
ϕ
(
n
)
⇒
g
\delta_n(g)=\phi(n)\Rightarrow g
δn(g)=ϕ(n)⇒g为
n
n
n的一个原根
有原根的数只有
2
2
2、
4
4
4、
p
n
p^n
pn、
2
p
n
2p^n
2pn,其中
ϕ
(
p
)
=
p
−
1
\phi(p)=p-1
ϕ(p)=p−1(就是说
p
p
p是质数),
n
∈
Z
∗
n\in\Z^*
n∈Z∗
也可以说
λ
(
n
)
=
ϕ
(
n
)
\lambda(n)=\phi(n)
λ(n)=ϕ(n)是
n
n
n有原根的充要条件
如果
n
n
n有原根,那么
n
n
n的原根个数为
ϕ
(
ϕ
(
n
)
)
\phi\left(\phi(n)\right)
ϕ(ϕ(n))
一个数
n
n
n的最小原根的大小是
O
(
n
1
4
)
O(n^{\frac{1}{4}})
O(n41)的。
已知 g g g为 n n n的一个原根,有:
- ( d , ϕ ( n ) ) = 1 ⇒ g d (d,\phi(n))=1\Rightarrow g^d (d,ϕ(n))=1⇒gd也是 n n n的原根。
- g i ≡ g j ( m o d p ) ⇔ i ≡ j ( m o d ϕ ( p ) ) g^i\equiv g^j\pmod{p}\Leftrightarrow i\equiv j\pmod{\phi(p)} gi≡gj(modp)⇔i≡j(modϕ(p))
可得:
(
g
,
n
)
=
1
,
g
d
≡
1
(
m
o
d
n
)
⇒
d
(g,n)=1,g^d\equiv1\pmod{n}\Rightarrow d
(g,n)=1,gd≡1(modn)⇒d是
ϕ
(
n
)
\phi(n)
ϕ(n)的一个因子
所以:如果
g
g
g是
n
n
n的原根,那么对
ϕ
(
n
)
\phi(n)
ϕ(n)除它本身外的因子
d
d
d,
g
d
≡
1
(
m
o
d
n
)
g^d\equiv1\pmod{n}
gd≡1(modn)不成立。
求模n原根:把
ϕ
(
n
)
\phi(n)
ϕ(n)分解成
∏
i
=
1
ω
(
n
)
p
i
a
i
\displaystyle{\prod\limits_{i=1}^{\omega(n)} p_i^{a_i}}
i=1∏ω(n)piai,如果
g
ϕ
(
n
)
p
i
≡
1
(
m
o
d
n
)
g^{\frac{\phi(n)}{p_i}}\equiv1\pmod{n}
gpiϕ(n)≡1(modn)不成立那么
g
g
g为
n
n
n的原根。
(听说)如果广义黎曼猜想成立那么复杂度是
O
(
log
n
∗
log
log
log
log
log
log
n
log
log
n
)
O\left(\dfrac{\log n*\log\log\log\log\log\log n}{\log\log n}\right)
O(loglognlogn∗loglogloglogloglogn)
复杂度瓶颈在分解质因数上。
- 指标 -
设
g
g
g为
x
x
x的一个原根。
g
I
(
x
)
=
x
g^{\mathrm I(x)}=x
gI(x)=x,
I
(
x
)
\mathrm I(x)
I(x)称为指标(离散对数)。
g
I
(
a
b
)
=
a
b
=
g
I
(
a
)
g
I
(
b
)
=
g
I
(
a
)
+
I
(
b
)
g^{\mathrm I(ab)}=ab=g^{\mathrm I(a)}g^{\mathrm I(b)}=g^{\mathrm I(a)+\mathrm I(b)}
gI(ab)=ab=gI(a)gI(b)=gI(a)+I(b)
指标法则:
- 乘积法则: I ( a b ) ≡ I ( a ) + I ( v ) ( m o d p − 1 ) \mathrm I(ab)\equiv \mathrm I(a)+\mathrm I(v)\pmod{p-1} I(ab)≡I(a)+I(v)(modp−1)
- 幂法则: I ( a k ) ≡ k I ( a ) ( m o d p − 1 ) \mathrm I(a^k)\equiv k\mathrm I(a)\pmod{p-1} I(ak)≡kI(a)(modp−1)
BSGS求指标,快速幂还原指标。
Problem List
★★★☆☆☆☆☆☆☆ bzoj2219
- 伯努利数 -
这里为了方便,不特殊指明的话,伯努利数 B B B 指 B − B^- B− 。
定义(生成函数): z e z − 1 = ∑ n = 0 ∞ B n − n ! z n \displaystyle{\frac{z}{e^z-1}=\sum\limits_{n=0}^\infty \frac{B^-_n}{n!}z^n} ez−1z=n=0∑∞n!Bn−zn 。其中 z ∈ C z\in\mathbb C z∈C 。
对于 B + B^+ B+ , z e z e z − 1 = ∑ n = 0 ∞ B n + n ! z n \displaystyle{\frac{ze^z}{e^z-1}=\sum\limits_{n=0}^\infty \frac{B^+_n}{n!}z^n} ez−1zez=n=0∑∞n!Bn+zn 。其中 z ∈ C z\in\mathbb C z∈C 。
∀ n ∈ Z , n ≥ 1 \mathbf\forall n\in\Z,n\ge1 ∀n∈Z,n≥1 有 B 2 n + 1 = 0 B_{2n+1}=0 B2n+1=0 。就是说:对于 B n B_n Bn 当 n n n 是大于 1 1 1 的奇数时 B n = 0 B_n=0 Bn=0 。
前几个 B n B_n Bn : B 0 = 1 , B 1 = − 1 2 , B 2 = 1 6 , B 3 = 0 , B 4 = 1 30 B_0=1,B_1=-\frac{1}{2},B_2=\frac{1}{6},B_3=0,B_4=\frac{1}{30} B0=1,B1=−21,B2=61,B3=0,B4=301 。
∀ n ∈ Z , n ≥ 2 \mathbf\forall n\in\Z,n\ge2 ∀n∈Z,n≥2 有 ∑ k = 0 n B k C n + 1 k = 0 \displaystyle{\sum\limits_{k=0}^nB_kC_{n+1}^k=0} k=0∑nBkCn+1k=0 即 B n = − ∑ k = 0 n − 1 B k C n + 1 k n + 1 \displaystyle{B_n=\frac{-\sum\limits_{k=0}^{n-1}B_kC_{n+1}^k}{n+1}} Bn=n+1−k=0∑n−1BkCn+1k
自然数幂和 ∑ k = 1 s k n = − ( s + 1 ) k B n − k + 1 C n + 1 k n + 1 \displaystyle{\sum\limits_{k=1}^sk^n=\frac{-(s+1)^kB_{n-k+1}C_{n+1}^k}{n+1}} k=1∑skn=n+1−(s+1)kBn−k+1Cn+1k
https://blog.csdn.net/VictoryCzt/article/details/82935408
https://blog.csdn.net/VictoryCzt/article/details/86556906
Problem List
★☆☆☆☆☆☆☆☆☆ 51nod1228
★★☆☆☆☆☆☆☆☆ 51nod1229
★★☆☆☆☆☆☆☆☆ bzoj3601
★★★★☆☆☆☆☆☆ 51nod1258
★★★★★★☆☆☆☆ tsinsen1300
- p 级数 -
形如
∑
n
=
0
∞
1
n
p
\displaystyle{\sum\limits_{n=0}^\infty\frac{1}{n^p}}
n=0∑∞np1 的正项级数被称为 p 级数 或者 超调和级数 。当
p
<
1
p<1
p<1 时 p 级数收敛,当
p
≥
1
p\ge1
p≥1 时 p 级数发散。当 p 级数收敛时,记
ζ
(
p
)
\zeta(p)
ζ(p) 为 p 级数收敛值。显然
ζ
(
p
)
\zeta(p)
ζ(p) 是
(
1
,
+
∞
)
(1,+\infty)
(1,+∞) 上的光滑函数(在定义域上无穷阶连续可导)。
p
=
1
p=1
p=1 时 p 级数退化为调和级数。
ζ
(
2
)
=
π
6
\zeta(2)=\frac{\pi}{6}
ζ(2)=6π 。
∀
n
∈
N
∗
,
ζ
(
2
n
)
=
(
−
1
)
n
+
1
B
2
n
(
2
π
)
2
n
2
(
2
n
)
!
\forall n\in\N^*,\zeta(2n)=\dfrac{(-1)^{n+1}B_{2n}(2\pi)^{2n}}{2(2n)!}
∀n∈N∗,ζ(2n)=2(2n)!(−1)n+1B2n(2π)2n 。其中
B
2
n
B_{2n}
B2n 是指第
2
n
2n
2n 个伯努利数。
调和级数
发散。
前
n
n
n 项和
ln
(
n
+
1
)
+
γ
\ln(n+1)+\gamma
ln(n+1)+γ 其中
γ
\gamma
γ 是欧拉常数,约为 0.577 21 566 。
- 幂级数 -
幂级数: ∑ n = 0 ∞ A n ( x − a ) n \sum\limits_{n=0}^\infty A_n(x-a)^n n=0∑∞An(x−a)n
对正项级数 ∑ n = 0 ∞ A n ( x − a ) n \sum\limits_{n=0}^\infty A_n(x-a)^n n=0∑∞An(x−a)n 若 lim n → + ∞ a n + 1 a n = ρ \lim\limits_{n\to+\infty}\dfrac{a_{n+1}}{a_n}=\rho n→+∞limanan+1=ρ 则 ρ < 1 \rho<1 ρ<1 时级数收敛, ρ > 1 \rho>1 ρ>1时发散。
如果 lim n → + ∞ ∣ a n + 1 ∣ ∣ a n ∣ = ρ \lim\limits_{n\to+\infty}\dfrac{|a_{n+1}|}{|a_n|}=\rho n→+∞lim∣an∣∣an+1∣=ρ 那么幂级数 ∑ n = 0 ∞ a n x n \sum\limits_{n=0}^\infty a_nx^n n=0∑∞anxn 的收敛半径 R = { 1 ρ ρ ∈ ( 0 , + ∞ ) + ∞ ρ = 0 R=\begin{cases}\frac{1}{\rho}&\rho\in(0,+\infty)\\+\infty&\rho=0\end{cases} R={ρ1+∞ρ∈(0,+∞)ρ=0,收敛区间 ( − R , R ) (-R,R) (−R,R) 。求收敛域,需要判断 x = ± R x=\pm R x=±R 的时候幂级数是否收敛,举个例子,如果在 x = − R x=-R x=−R 处收敛,在 x = R x=R x=R 处发散,那么幂级数的收敛域 [ − R , R ) [-R,R) [−R,R) 。
幂级数的加法:
∑
n
=
0
∞
a
n
x
n
+
∑
n
=
0
∞
b
n
x
n
=
∑
n
=
0
∞
(
a
n
+
b
n
)
x
n
=
s
1
(
x
)
+
s
2
(
x
)
\sum\limits_{n=0}^\infty a_nx^n+\sum\limits_{n=0}^\infty b_nx^n = \sum\limits_{n=0}^\infty(a_n+b_n)x^n=s_1(x)+s_2(x)
n=0∑∞anxn+n=0∑∞bnxn=n=0∑∞(an+bn)xn=s1(x)+s2(x)
幂级数的减法:
∑
n
=
0
∞
a
n
x
n
−
∑
n
=
0
∞
b
n
x
n
=
∑
n
=
0
∞
(
a
n
−
b
n
)
x
n
=
s
1
(
x
)
−
s
2
(
x
)
\sum\limits_{n=0}^\infty a_nx^n-\sum\limits_{n=0}^\infty b_nx^n = \sum\limits_{n=0}^\infty(a_n-b_n)x^n=s_1(x)-s_2(x)
n=0∑∞anxn−n=0∑∞bnxn=n=0∑∞(an−bn)xn=s1(x)−s2(x)
幂级数的乘法:
∑
n
=
0
∞
a
n
x
n
∑
n
=
0
∞
b
n
x
n
=
∑
n
=
0
∞
∑
k
=
0
n
a
k
b
n
−
k
x
n
=
s
1
(
x
)
s
2
(
x
)
\sum\limits_{n=0}^\infty a_nx^n\sum\limits_{n=0}^\infty b_nx^n = \sum\limits_{n=0}^\infty\sum\limits_{k=0}^n a_kb^{n-k}x^n =s_1(x)s_2(x)
n=0∑∞anxnn=0∑∞bnxn=n=0∑∞k=0∑nakbn−kxn=s1(x)s2(x)
上面的三种运算得到的结果都是幂级数,收敛半径
R
=
m
i
n
(
R
1
,
R
2
)
R=min(R_1,R_2)
R=min(R1,R2)
两幂级数相除得到幂级数,并且得到的幂级数的收敛半径
R
R
R 可能远小于
m
i
n
(
R
1
,
R
2
)
min(R_1,R_2)
min(R1,R2) 。
对于幂级数
∑
n
=
0
∞
A
n
(
x
−
a
)
n
\sum\limits_{n=0}^\infty A_n(x-a)^n
n=0∑∞An(x−a)n ,
其和函数
s
(
x
)
=
∑
n
=
0
∞
A
n
(
x
−
a
)
n
s(x)=\sum\limits_{n=0}^\infty A_n(x-a)^n
s(x)=n=0∑∞An(x−a)n 在幂级数的收敛域上连续且可积(有界,且有限个非无穷间断点)且可逐项积分无限次,在幂级数的收敛区间上可导且有任意阶导数。
重要的幂级数展开式
e x = ∑ n = 0 ∞ x n n ! e^x=\displaystyle\sum\limits_{n=0}^\infty\frac{x^n}{n!} ex=n=0∑∞n!xn
sin ( x ) = ∑ n = 0 ∞ ( − 1 ) n ⋅ x 2 n + 1 ( 2 n + 1 ) ! \sin(x)=\displaystyle\sum\limits_{n=0}^\infty(-1)^n\cdot\cfrac{x^{2n+1}}{(2n+1)!} sin(x)=n=0∑∞(−1)n⋅(2n+1)!x2n+1
cos ( x ) = ∑ n = 0 ∞ ( − 1 ) n ⋅ x 2 n ( 2 n ) ! \cos(x)=\displaystyle\sum\limits_{n=0}^\infty(-1)^n\cdot\cfrac{x^{2n}}{(2n)!} cos(x)=n=0∑∞(−1)n⋅(2n)!x2n
ln ( 1 + x ) = ∑ n = 0 ∞ ( − 1 ) n n + 1 x n + 1 = ∑ n = 1 ∞ ( − 1 ) n − 1 ⋅ x n n \ln(1+x)=\displaystyle\sum\limits_{n=0}^\infty\cfrac{(-1)^{n}}{n+1}x^{n+1}=\displaystyle\sum\limits_{n=1}^\infty(-1)^{n-1}\cdot\cfrac{x^n}{n} ln(1+x)=n=0∑∞n+1(−1)nxn+1=n=1∑∞(−1)n−1⋅nxn
1 1 + x = ∑ n = 0 ∞ ( − 1 ) n x n \dfrac{1}{1+x}=\displaystyle\sum\limits_{n=0}^\infty(-1)^nx^n 1+x1=n=0∑∞(−1)nxn
1 1 − x = ∑ n = 0 ∞ x n \dfrac{1}{1-x}=\displaystyle\sum\limits_{n=0}^\infty x^n 1−x1=n=0∑∞xn
幂级数和函数的逐项积分公式(在幂级数收敛域上):
∫
0
x
s
(
t
)
d
t
=
∫
0
x
[
∑
n
=
0
∞
a
n
t
n
]
d
t
=
∑
n
=
0
∞
∫
0
x
a
n
t
n
d
t
=
∑
n
=
0
∞
a
n
n
+
1
x
n
+
1
\displaystyle{\int^x_0s(t)dt=\int^x_0\left[\sum\limits_{n=0}^\infty a_nt^n\right]dt=\sum\limits_{n=0}^\infty\int^x_0a_nt^ndt=\sum\limits_{n=0}^\infty\frac{a_n}{n+1}x^{n+1}}
∫0xs(t)dt=∫0x[n=0∑∞antn]dt=n=0∑∞∫0xantndt=n=0∑∞n+1anxn+1
逐项积分后所得的幂级数与原级数有相同的收敛半径。
幂级数和函数的逐项求导公式
s
′
(
x
)
=
(
∑
n
=
0
∞
a
n
x
n
)
′
=
∑
n
=
0
∞
(
a
n
x
n
)
′
=
∑
n
=
1
∞
n
a
n
−
1
x
n
−
1
\displaystyle{s'(x)=\left(\sum\limits_{n=0}^\infty a_nx^n\right)'=\sum\limits_{n=0}^\infty(a_nx^n)'=\sum\limits_{n=1}^\infty na_{n-1}x^{n-1}}
s′(x)=(n=0∑∞anxn)′=n=0∑∞(anxn)′=n=1∑∞nan−1xn−1
逐项求导后所得的幂级数与原级数有相同的收敛半径。
幂级数的求和、证敛散性之类的还是挺有趣的,可以做一些相关的习题。【参考】
- 欧拉公式 -
高阶无穷小:对于无穷小量 α , β \alpha,\beta α,β , lim l i m i t α β = 0 \lim\limits_{limit}\dfrac{\alpha}{\beta}=0 limitlimβα=0,那么 l i m i t limit limit 时 α \alpha α 是 β \beta β 的高阶无穷小, β \beta β 是 α \alpha α 的低阶无穷小。如果 lim l i m i t α β k = C \lim\limits_{limit}\dfrac{\alpha}{\beta^k}=C limitlimβkα=C (其中 C C C 是一个非 0 0 0 常数),那么称 α \alpha α 是 β \beta β 的 k k k 阶无穷小。
泰勒展开:定义域包含 x 0 x_0 x0 的函数 f ( x ) f(x) f(x) 如果在 x 0 x_0 x0 点处 n + 1 n+1 n+1 次可导,那么在 f ( x ) f(x) f(x) 的定义域内有 f ( x ) = ∑ n = 0 N f ( n ) ( x 0 ) n ! ( x − x 0 ) n + R N ( x ) f(x)=\displaystyle\sum\limits_{n=0}^N\frac{f^{(n)}(x_0)}{n!}(x-x_0)^n+R_N(x) f(x)=n=0∑Nn!f(n)(x0)(x−x0)n+RN(x) ,其中 R N ( x ) R_N(x) RN(x) 是泰勒公式的余项,并且 R N ( x ) R_N(x) RN(x) 是 ( x − x 0 ) N (x-x_0)^N (x−x0)N 的高阶无穷小。泰勒展开得到的泰勒级数某种程度上可以看作幂级数( ∑ n = 0 ∞ A n x n \sum\limits_{n=0}^\infty A_nx^n n=0∑∞Anxn ),区别是泰勒展开把无限项取了一个 R N ( x ) R_N(x) RN(x) 变成了有限项。 R N ( x ) R_N(x) RN(x) 一般根据实际需要取,麦克劳林展开也是这样的,而且因为麦克劳林展开里面 x 0 = 0 x_0=0 x0=0 ,操作起来还会更清爽(。
看熟悉泰勒级数的前几项也许还是有些意义的,在这里写一下:
f ( x ) = f ( x 0 ) + f ′ ( x 0 ) 1 ! ( x − x 0 ) + f ′ ′ ( x 0 ) 2 ! ( x − x 0 ) 2 + ⋯ f(x)=f(x_0)+\frac{f'(x_0)}{1!}(x-x_0)+\frac{f''(x_0)}{2!}(x-x_0)^2+\cdots f(x)=f(x0)+1!f′(x0)(x−x0)+2!f′′(x0)(x−x0)2+⋯
关于泰勒公式的推导……【参考】
\;
泰勒公式的意义是用关于
(
x
−
x
0
)
(x-x_0)
(x−x0)的
n
n
n次多项式来逼近在
x
=
x
0
x=x_0
x=x0处有
n
n
n阶导数的
f
(
x
)
f(x)
f(x)。
简单讲就是就是用多项式函数
f
(
x
)
f(x)
f(x)去逼近光滑函数。
使:多项式的任意阶导数值都和
f
(
x
)
f(x)
f(x)的对应阶导数值相等。
又或者说,这是一种把目标函数写成幂函数(“多项式”)的线性组合的方法,
是解析函数空间一组基的线性组合。
取
x
0
=
0
x_0=0
x0=0得到麦克劳林展开:
f
(
x
)
=
∑
n
=
0
∞
f
(
n
)
(
0
)
n
!
x
n
f(x)=\displaystyle\sum\limits_{n=0}^\infty\frac{f^{(n)}(0)}{n!}x^n
f(x)=n=0∑∞n!f(n)(0)xn
泰勒公式用的时候一般从第四项开始就变成了高阶无穷小,后面的作余项。
算极限的时候一般会忽略余项不计。
一个重要应用就是可以对一些难求的,比如
sin
(
x
)
\sin(x)
sin(x),求估计值。
利用
e
±
i
x
e^{\pm ix}
e±ix,
sin
(
x
)
\sin(x)
sin(x)和
cos
(
x
)
\cos(x)
cos(x)的麦克劳林展开式的关系可以推导出欧拉公式:
e
i
θ
=
cos
θ
+
i
sin
θ
e^{i\theta}=\cos\theta+i\sin\theta
eiθ=cosθ+isinθ
这是一个复变函数,它的图像大概长成一个弹簧样子,或者说是螺旋线。
你问复数指数的定义是什么?
在实数范围内我们有 e x = ∑ i = 0 ∞ x i i ! e^x=\displaystyle\sum\limits_{i=0}^\infty \dfrac{x^i}{i!} ex=i=0∑∞i!xi
推广到复数就是 e z = ∑ i = 0 ∞ z i i ! e^z=\displaystyle\sum\limits_{i=0}^\infty \dfrac{z^i}{i!} ez=i=0∑∞i!zi, z = a + b i z=a+bi z=a+bi
a=0代进去就可以得到欧拉公式了。
欧拉公式将正弦波统一成了简单的指数形式。这是什么意思?
正弦波可以看作频域的单位元;但是怎么对它进行线性变换?
我们可以用简单的
C
e
i
θ
Ce^{i\theta}
Ceiθ表示正弦波
C
(
cos
θ
+
i
sin
θ
)
C(\cos\theta+i\sin\theta)
C(cosθ+isinθ)(
C
C
C为常数)
举个例子吧。
比如说让你把 sin ( ω t + ϕ ) \sin(\omega t+\phi) sin(ωt+ϕ)搞成 2 cos ( ω 2 t + 3 ϕ ) 2\cos(\dfrac{\omega}{2}t+3\phi) 2cos(2ωt+3ϕ),要用线性变换
如果不知道有欧拉公式:?????
现在,由欧拉公式 e i x = cos x + i sin x e^{ix}=\cos x+i\sin x eix=cosx+isinx和 e − i x = cos x − i sin x e^{-ix}=\cos x-i\sin x e−ix=cosx−isinx有:
sin x = e i x − e − i x 2 , cos x = e i x + e − i x 2 \sin x=\dfrac{e^{ix}-e^{-ix}}{2},\cos x=\dfrac{e^{ix}+e^{-ix}}{2} sinx=2eix−e−ix,cosx=2eix+e−ix
那就完事了。
中间得到的 sin x = e i x − e − i x 2 , cos x = e i x + e − i x 2 \sin x=\dfrac{e^{ix}-e^{-ix}}{2},\cos x=\dfrac{e^{ix}+e^{-ix}}{2} sinx=2eix−e−ix,cosx=2eix+e−ix也是有显然意义的:
就是:把两个螺旋线的复数部分抵消,剩下 sin x \sin x sinx或者 cos x \cos x cosx。
- 连续傅里叶变换 -
正变换: F ( ω ) = F [ f ( t ) ] = ∫ − ∞ + ∞ f ( t ) e − i ω t d t = 1 2 π ≺ f ( t ) , e i ω t ≻ {F(\omega)=\mathcal F[f(t)]=\displaystyle\int\limits_{-\infty}^{+\infty}f(t)e^{-i\omega t}dt}=\dfrac{1}{2\pi}\prec f(t),e^{i\omega t}\succ F(ω)=F[f(t)]=−∞∫+∞f(t)e−iωtdt=2π1≺f(t),eiωt≻
公式中 F ( ω ) F(ω) F(ω)为 f ( t ) f(t) f(t)的像函数, f ( t ) f(t) f(t)为 F ( ω ) F(ω) F(ω)的像原函数。
可以看出,傅里叶变换的本质是内积。
三角函数是完备的正交函数集;
两个三角函数的内积不为0当且仅当它们的频率相等。
因此,可以将傅里叶变换理解为
f
(
t
)
f(t)
f(t)在
e
i
ω
t
e^{i\omega t}
eiωt上的投影的叠加。
叠加的结果就是频率为
ω
\omega
ω的分量,也就形成了频谱。
逆变换:
f
(
t
)
=
1
2
π
∫
−
∞
+
∞
F
(
ω
)
e
i
ω
t
d
ω
f(t)=\dfrac{1}{2\pi}\displaystyle\int\limits_{-\infty}^{+\infty}\mathcal F(\omega)e^{i\omega t}d\omega
f(t)=2π1−∞∫+∞F(ω)eiωtdω
- 卷积 -
多项式的系数表示法
多项式的点值表示法
多项式余数定理:
f
(
x
)
m
o
d
(
x
−
a
)
=
f
(
a
)
f(x)\mod{(x-a)}=f(a)
f(x)mod(x−a)=f(a)
推广,
f
(
x
)
m
o
d
g
(
x
)
=
f
(
p
)
f(x)\mod{g(x)=f(p)}
f(x)modg(x)=f(p) 其中
g
(
p
)
=
0
g(p)=0
g(p)=0 。
- 拉格朗日插值 -
对于
n
+
1
n+1
n+1 个点
(
x
0
,
y
0
)
,
(
x
1
,
y
1
)
.
.
.
(
x
n
,
y
n
)
(x_0,y_0),(x_1,y_1)...(x_n,y_n)
(x0,y0),(x1,y1)...(xn,yn) ,想要求一个图像经过它们的
f
(
x
)
f(x)
f(x) 。
https://blog.csdn.net/qq_35649707/article/details/78018944
- 傅里叶级数 -
傅里叶级数的本质是将一个周期的信号分解成无限多分开的(离散的)正弦波。
- 离散傅里叶变换 -
离散傅里叶变换是
f
(
t
)
f(t)
f(t)的频谱
F
(
e
i
ω
)
\mathcal F(e^{iω})
F(eiω)在
[
0
,
2
π
]
[0,2π]
[0,2π]上的多个点等间隔采样:
也就是对序列频谱的离散化。这是离散傅里叶的物理意义。
其它的在下面快速傅里叶变换那里讨论。
- 复合变换 -
卷积性变换复合
卷积性变换复合逆定理
- 集合幂级数 -
- 有限交换半群上的DFT -
变换矩阵
- 有限交换群分解 -
- 傅里叶:离散&周期 -
傅里叶变换、拉普拉斯变换、z变换的本质都是将信号从时域转化到(复)频域。
从时域到频域,有:
傅里叶级数:连续&周期→频域离散&非周期
连续傅里叶变换:连续&非周期→连续&非周期;
离散傅里叶变换:离散&周期→离散&周期;
离散时间傅里叶变换:离散&非周期→连续&周期;
时域的周期性导致频域的离散性,时域的连续函数在频域形成非周期频谱;
时域的离散性造成频域的周期延拓,时域的非周期性对应于频域的连续函数形式。【引用】
- 拉普拉斯(Laplace)变换 -
只有在满足一定条件时,周期信号才能展开成傅里叶级数。
一个充分不必要条件是狄利克雷条件。可以简单认为,收敛才能搞傅里叶。
傅里叶变换针对离散信号和连续信号的处理,
拉普拉斯变换针对连续时间信号处理,
z变换针对离散时间信号处理。z变换可以看作是一个洛朗级数。
我们可以认为,傅里叶变换是把收敛的函数转一转,拉下来,用了三角函数;
拉普拉斯变换是把不收敛的函数用变幅三角函数来逼近,这样才能拉下来一边。
不过拉下来一边,另一边上天了,所以得双边拉普拉斯。
- FFT&IFFT -
FFT 基于 DFT 。
复数单位根(单位复根):
w
n
k
=
cos
(
2
π
k
n
)
+
i
sin
(
2
π
k
n
)
w_n^k=\cos\left(\frac{2\pi k}{n}\right)+i\sin\left(\frac{2\pi k}{n}\right)
wnk=cos(n2πk)+isin(n2πk)
消去引理:
w
d
n
d
k
=
w
n
k
w_{dn}^{dk}=w_{n}^k
wdndk=wnk
折半引理:
ω
n
k
=
−
ω
n
k
+
1
2
n
\omega_n^k=-\omega_n^{k+\frac{1}{2}n}
ωnk=−ωnk+21n
求和引理:
∑
j
=
0
n
−
1
w
n
k
j
=
0
(
n
>
0
,
∄
d
(
d
=
n
k
∧
d
∈
Z
)
)
\displaystyle{\sum\limits_{j=0}^{n-1}w_n^{kj}=0\quad\left(\;n>0\;,\;\nexists d\left(d=\frac{n}{k}\wedge d\in\Z\right)\right)}
j=0∑n−1wnkj=0(n>0,∄d(d=kn∧d∈Z))
多点求值
我们利用折半引理将
A
(
x
)
A(x)
A(x)奇偶拆分为
A
1
(
x
)
,
w
n
k
A
2
(
x
)
A_1(x),w_n^kA_2(x)
A1(x),wnkA2(x)
求点值:
y
k
=
∑
k
=
0
n
−
1
a
k
w
n
k
j
y_k=\displaystyle\sum\limits_{k=0}^{n-1}a_kw_{n}^{kj}
yk=k=0∑n−1akwnkj
插值
求插值有一个复杂度劣的方法:先求范德蒙矩阵的逆矩阵再用拉格朗日插值
但是可以反演。 FFT 显然可以表示成矩乘的形式,现在想要用还原系数,只需要把点值表示的矩阵乘上 FFT 变换矩阵的逆;并且求值矩阵是一个范德蒙德矩阵,它的逆也就是插值矩阵、并且范德蒙德矩阵的逆不难计算【参考】。IFFT:
a
k
=
1
n
∑
k
=
0
n
−
1
y
k
w
n
k
j
a_k=\displaystyle\cfrac{1}{n}\sum\limits_{k=0}^{n-1}y_kw_n^{kj}
ak=n1k=0∑n−1ykwnkj
也即对于
i
∈
[
0
,
n
]
∩
N
i\in[0,n]\cap\N
i∈[0,n]∩N,
j
∈
[
0
,
m
]
∩
N
j\in[0,m]\cap\N
j∈[0,m]∩N,
V
n
−
1
{V_n}^{-1}
Vn−1在
(
i
,
j
)
(i,j)
(i,j)处的值为
ω
n
−
i
j
n
\dfrac{{\omega_n}^{-ij}}{n}
nωn−ij
加速
为了加速,尝试将奇偶性二分的过程画出递归树,转为迭代。
这要求我们知道叶子节点下标:
二进制翻转:for(int i=0;i<Lim;++i)R[i]=R[i>>1]>>1|(i&1)<<log2(Lim);
在将下标二进制翻转、得到递归树叶子下标后,可以比较方便地做 FFT/IFFT 。
还可以进一步【参考】优化常数和精度。
void transform(Complex* a, double f) { //f=1为FFT,f=-1为IFFT
for (int i = 0; i < nLim; ++i) {
if (i < nRev[i]) swap(a[i], a[nRev[i]]);
}
for (int nMid = 1, nLen; nMid < nLim; nMid <<= 1) { //枚举区间长度
Complex Wn(cos(pi/nMid), f * sin(pi/nMid)); //单位根
nLen = nMid << 1;
for (int nLeft = 0; nLeft < nLim; nLeft += nLen) { //枚举区间左端点
Complex w(1, 0);
for (int k = 0; k < nMid; ++k) { //在单位圆上旋转(分治求解)
Complex x = a[nLeft + k], y = w * a[nLeft + nMid + k]; //奇偶拆分
a[nLeft + k] = x + y;
a[nLeft + nMid + k] = x - y; //折半引理
w = w * Wn;
}
}
}
}
Problem List
★★★☆☆☆☆☆☆☆ luogu3803
★★★☆☆☆☆☆☆☆ luogu3338
★★★★☆☆☆☆☆☆ luogu3723
FFT为什么选择了单位复根?
首先,我们要保证点不重合,而
ω
n
k
\omega_n^k
ωnk互不相同。
其次,对
ω
n
k
=
c
o
s
(
2
π
n
k
)
+
i
s
i
n
(
2
π
n
k
)
\omega_n^k=cos(\frac{2\pi}{n}k)+isin(\frac{2\pi}{n}k)
ωnk=cos(n2πk)+isin(n2πk),我们有消去引理、求和引理、折半引理。
消去和折半引理为分治提供了基础;而求和引理允许逆变换。
同样有类似性质的,就是原根。用原根代替单位复根,称得到的新变换为NTT。
现在
ω
n
k
=
g
k
q
\omega_n^k=g^{kq}
ωnk=gkq;对有原根的质数
p
=
q
n
+
1
p=qn+1
p=qn+1其中
n
=
2
z
,
z
∈
N
n=2^z,z\in\N
n=2z,z∈N,其原根为
g
g
g。
原根的性质:
0
≤
i
≤
p
−
1
0\le i\le p-1
0≤i≤p−1时,
g
i
g^i
gi互不相同。【参考】
当参与运算的多项式系数可以转化成能接受的整数时、
用NTT显然会比永远需要浮点运算的FFT精确些。
奇技淫巧:ntt压位 https://www.luogu.org/problemnew/solution/P2000
https://www.cnblogs.com/RabbitHu/p/9182047.html
https://www.cnblogs.com/RabbitHu/p/9178645.html
- 线性递推关系 -
对于序列
{
h
i
:
i
=
0
,
1
,
2
,
⋯
}
\{h_i:i=0,1,2,\cdots\}
{hi:i=0,1,2,⋯},如果存在
{
a
i
:
i
=
1
,
2
,
3
,
⋯
,
k
}
,
a
k
≠
0
\{a_i:i=1,2,3,\cdots,k\},a_k\ne0
{ai:i=1,2,3,⋯,k},ak=0和
b
n
b_n
bn
(
n
≥
k
n\ge k
n≥k,
a
1
,
a
2
,
⋯
,
a
k
,
b
n
a_1,a_2,\cdots ,a_k,b_n
a1,a2,⋯,ak,bn可以和
n
n
n有关)使
h
n
=
b
n
+
∑
i
=
1
k
a
i
h
n
−
i
\displaystyle{h_n=b_n+\sum\limits_{i=1}^k a_ih_{n-i}}
hn=bn+i=1∑kaihn−i
那么我们称这个序列满足k阶线性递推关系。
如果
b
n
=
0
b_n=0
bn=0,称该线性递推关系为齐次的
如果
a
i
a_i
ai(
i
∈
[
1
,
k
]
∩
N
∗
i\in[1,k]\cap\N^*
i∈[1,k]∩N∗)是常数,则称该线性递推关系具有常系数
当且仅当
q
≠
0
q\ne0
q=0是多项式
x
k
=
∑
i
=
1
k
a
i
x
k
−
i
\displaystyle{x^k=\sum\limits_{i=1}^ka_ix^{k-i}}
xk=i=1∑kaixk−i ① 的一个根时,
h
n
=
q
n
h_n=q^n
hn=qn是常系数线性递推关系:
h
n
=
∑
i
=
1
k
a
i
h
n
−
i
\displaystyle{h_n=\sum\limits_{i=1}^ka_ih_{n-i}}
hn=i=1∑kaihn−i(
a
k
≠
0
,
n
≥
k
a_k\ne0,n\ge k
ak=0,n≥k) ② 的一个解。
如果多项式方程有
k
k
k个不同的根
q
1
,
q
2
,
⋯
,
q
k
q_1,q_2,\cdots,q_k
q1,q2,⋯,qk,
那么
h
n
=
∑
i
=
1
k
c
i
q
i
n
\displaystyle{h_n=\sum\limits_{i=1}^kc_i{q_i}^n}
hn=i=1∑kciqin ③ 是下述意义下 ② 的一般解:
无论给定h0,h1…hn的值是多少,都存在常数c1,c2…ck使 ③ 是满足 ② 的唯一序列。
多项式方程 ① 称为递推关系 ② 的特征方程,它的
k
k
k个根称为特征根。
如果特征根互异,那么 ③ 是 ② 的一般解。
- 普通生成函数 -
对于无穷序列
{
a
i
:
i
∈
N
}
\{a_i:i\in\N\}
{ai:i∈N},它的普通型生成函数是无穷级数
G
(
s
)
=
∑
i
=
0
∞
a
i
s
i
\displaystyle{G(s)=\sum\limits_{i=0}^\infty a_is^i}
G(s)=i=0∑∞aisi
其中
s
s
s的值使得函数值收敛。
可以定义这个序列的收敛半径
R
R
R,使级数在
∣
s
∣
<
R
|s|<R
∣s∣<R时绝对收敛,在
∣
s
∣
>
R
|s|>R
∣s∣>R时发散。
∣
s
∣
<
R
|s|<R
∣s∣<R,
G
(
s
)
G(s)
G(s)可以是任意阶可微的或者按项可积的。
- 概率生成函数 -
记 Pr ( X ) \Pr(X) Pr(X)表示 X X X发生的概率。
概率质量函数
记
X
X
X为定义在可数样本空间
S
S
S上的离散随机变量
S
⊆
R
S\subseteq R
S⊆R,其概率质量函数
f
X
(
x
)
f_{_X}(x)
fX(x):
f
X
(
x
)
=
{
Pr
(
X
=
x
)
,
x
∈
S
,
0
,
x
∈
R
∖
S
.
f_{_X}(x) = \begin{cases} \Pr(X=x),\quad x\in S, \\ 0,\qquad\qquad\quad\, x\in\R\setminus S. \end{cases}
fX(x)={Pr(X=x),x∈S,0,x∈R∖S.
概率生成函数
对一个随机变量,概率生成函数是指该随机变量的概率质量函数的幂级数表达式。
对于随机变量
X
X
X其概率生成函数通常记作
G
(
s
)
G(s)
G(s)或
G
X
(
s
)
G_{_X}(s)
GX(s)
概率生成函数和概率密度函数的Z变换/洛朗级数等效。
单变量
对于数列
{
p
i
:
i
∈
N
}
\{p_{_i}:i\in\N\}
{pi:i∈N},如果存在离散随机变量
X
X
X满足
Pr
(
X
=
k
)
=
p
k
\Pr(X=k)=p_{_k}
Pr(X=k)=pk(
k
∈
N
k\in\N
k∈N)
那么
{
p
i
:
i
∈
N
}
\{p_{_i}:i\in\N\}
{pi:i∈N}的普通生成函数也称为
X
X
X的概率生成函数(PGF)。
即若
X
X
X是
N
\N
N上的离散随机变量,那么
X
X
X的概率生成函数为
G
(
s
)
=
E
(
s
X
)
=
∑
k
=
0
∞
p
k
s
k
\displaystyle{G(s)=E(s^X)=\sum\limits_{k=0}^\infty p_{_k}s^k}
G(s)=E(sX)=k=0∑∞pksk
并且
p
(
x
)
=
p
k
p(x)=p_{_k}
p(x)=pk为
X
X
X的概率质量函数。
多变量
G
(
s
)
=
∑
x
1
,
x
2
,
⋯
,
x
d
=
0
∞
p
(
x
1
,
x
2
,
⋯
,
x
d
)
s
1
x
1
s
2
x
2
⋯
s
d
x
d
\displaystyle{G(s)=\sum\limits_{x_{_1},x_{_2},\cdots,x_{_d}=0}^\infty p(x_{_1}},x_{_2},\cdots,x_{_d}){s_{_1}}^{x_{_1}}{s_{_2}}^{x_{_2}}\cdots{s_{_d}}^{x_{_d}}
G(s)=x1,x2,⋯,xd=0∑∞p(x1,x2,⋯,xd)s1x1s2x2⋯sdxd
其中
p
p
p是
X
X
X的概率质量函数。
性质:
概率生成函数服从幂级数的所有非负系数的规则。特别地、
G
(
1
−
)
=
lim
s
→
1
G
(
s
)
=
1
G(1^-)=\lim_{s\to1}G(s)=1
G(1−)=lims→1G(s)=1。
所以任意概率生成函数的收敛半径至少为1。
G
(
0
)
=
p
0
G(0)=p_{_0}
G(0)=p0;
概率密度函数的归一化:
E
(
1
)
=
G
(
1
−
)
=
∑
k
=
0
∞
f
(
k
)
=
1
\displaystyle{E(1)=G(1^-)=\sum\limits_{k=0}^\infty f(k)=1}
E(1)=G(1−)=k=0∑∞f(k)=1。
对
G
(
s
)
G(s)
G(s)求导可以得到:
G
′
(
s
)
=
∑
k
=
0
∞
k
⋅
p
k
s
i
−
1
\displaystyle{{G}'(s)=\sum\limits_{k=0}^\infty k\cdot p_{_k}s^{i-1}}
G′(s)=k=0∑∞k⋅pksi−1;
G
(
k
)
(
0
)
k
!
=
p
(
k
)
\dfrac{G^{(k)}(0)}{k!}=p(k)
k!G(k)(0)=p(k)
X
X
X的期望:
E
(
X
)
=
G
′
(
1
−
)
=
∑
k
=
0
∞
k
⋅
p
k
\displaystyle{E(X)={G}'(1^-)=\sum\limits_{k=0}^\infty k\cdot p_{_k}}
E(X)=G′(1−)=k=0∑∞k⋅pk
根据
D
(
X
)
=
E
{
[
X
−
E
(
X
)
]
2
}
=
E
(
X
2
)
−
E
2
(
X
)
D(X)=E\{[X-E(X)]^2\}=E(X^2)-E^2(X)
D(X)=E{[X−E(X)]2}=E(X2)−E2(X)可以得到
X
X
X的方差:
V
a
r
(
X
)
=
D
(
X
)
=
E
(
X
2
)
−
E
2
(
x
)
=
G
′
′
(
1
−
)
+
G
′
(
1
−
)
−
[
G
′
(
1
−
)
]
2
Var(X)=D(X)=E(X^2)-E^2(x)={G}''(1^-)+{G}'(1^-)-\left[{G}'\left(1^-\right)\right]^2
Var(X)=D(X)=E(X2)−E2(x)=G′′(1−)+G′(1−)−[G′(1−)]2
两独立随机变量的差
Δ
X
=
X
1
−
X
2
\Delta X=X_1-X_2
ΔX=X1−X2的概率生成函数
G
Δ
X
(
s
)
=
G
X
1
(
s
)
=
G
X
2
(
1
s
)
G_{_{\Delta X}}(s)=G_{_{X_1}}(s)=G_{_{X_2}}\left(\dfrac{1}{s}\right)
GΔX(s)=GX1(s)=GX2(s1)
唯一性定理:
对离散随机变量
X
,
Y
X,Y
X,Y,当且仅当
∀
k
∈
N
,
Pr
(
X
=
k
)
=
Pr
(
Y
=
k
)
\mathbf\forall k\in\N,\Pr(X=k)=\Pr(Y=k)
∀k∈N,Pr(X=k)=Pr(Y=k),
它们的PGF:
G
X
,
G
Y
G_{_X},G_{_Y}
GX,GY,满足
∀
s
,
G
X
(
s
)
=
G
Y
(
s
)
\mathbf\forall s,G_{_X}(s)=G_{_Y}(s)
∀s,GX(s)=GY(s)。
矩
有可数随机变量
X
X
X,同时
G
X
(
r
)
(
1
)
{G_{_X}}^{(r)}(1)
GX(r)(1)是
X
X
X的PGF:
G
X
(
s
)
G_{_X}(s)
GX(s)在
s
=
1
s=1
s=1处的
r
r
r阶导,那么:
G
X
(
r
)
(
1
)
=
E
[
X
(
X
−
1
)
⋯
(
X
−
r
+
1
)
]
{G_{_X}}^{(r)}(1)=E[X(X-1)\cdots(X-r+1)]
GX(r)(1)=E[X(X−1)⋯(X−r+1)]
- border -
对于一个长度为
L
L
L的序列
A
A
A,约定
A
[
l
,
r
]
A[l,r]
A[l,r]表示序列
A
A
A的第
l
l
l个数字到第
r
r
r个数字组成的序列。
如果
A
[
1
,
i
]
=
A
[
L
−
i
+
1
,
L
]
A[1,i]=A[L-i+1,L]
A[1,i]=A[L−i+1,L],那么我们称
A
[
1
,
i
]
A[1,i]
A[1,i]是
A
A
A的一个border。
- 可逆背包 -
沈阳M、https://www.nitacm.com/contest_show.php?cid=327#problem/B
参考https://www.cnblogs.com/gzy-cjoier/p/7470391.html
还有luogu博客那个。
2008 pálya计数法的应用
- 轨道-稳定集定理 -
- Burnside引理 -
- Polyá定理 -
- 基于置换群的算法 -
https://blog.csdn.net/luyuncheng/article/details/8001898
https://blog.csdn.net/cyb6100300115/article/details/7948136
- 拉格朗日乘数法
https://www.cnblogs.com/GerynOhenz/p/4696323.html
- 内点法(Interior Point Method)
https://blog.csdn.net/dymodi/article/details/46441783
- 单纯形法(Simplex Method)
一道题 https://blog.csdn.net/Izumi_Hanako/article/details/80056215
理论 https://www.cnblogs.com/zzqsblog/articles/5457091.aspx
技巧&题目 https://www.cnblogs.com/ECJTUACM-873284962/p/7097864.html
- 康托(Cantor)展开 -
https://www.cnblogs.com/ppprseter/p/9443571.html
- 排序不等式 -
a
,
b
,
c
,
d
∈
R
,
a
≥
b
,
c
≥
d
a,b,c,d\in\R,a\ge b,c\ge d
a,b,c,d∈R,a≥b,c≥d,那么:
a
c
+
b
d
≥
a
d
+
b
c
ac+bd\ge ad+bc
ac+bd≥ad+bc
当且仅当
a
=
b
a=b
a=b或
c
=
d
c=d
c=d时取等号。
推论:顺序和 ≥ 乱序和 ≥ 逆序和
- 组合排列基础 -
排列数
组合数
二项式定理
(
a
+
b
)
n
=
∑
r
=
0
n
(
n
r
)
a
r
b
n
−
r
(a+b)^n=\sum\limits_{r=0}^n{n\choose r}a^rb^{n-r}
(a+b)n=r=0∑n(rn)arbn−r
组合数取模:Lucas定理
扩展Lucas定理
- 卡特兰(Catalan)数 -
- 斯特林(Stirling)数 -
https://www.cnblogs.com/gzy-cjoier/p/8426987.html
- 容斥原理基础 -
- 简单组合计数 -
★★☆☆☆☆☆☆☆☆ hdu6363 组合计数+容斥原理+莫比乌斯反演+扩展欧拉降幂
- 莫比乌斯(Mobius)变换 -
- 狄利克雷(Dirchlet)卷积
- 反演 -
莫比乌斯反演
莫比乌斯反演其实就是偏序集上的容斥。【引用】
二项式反演
对称
g
n
=
∑
i
=
0
n
(
−
1
)
i
(
n
i
)
f
i
⇔
f
n
=
∑
i
=
0
n
(
−
1
)
i
(
n
i
)
g
i
g_n=\sum\limits_{i=0}^n(-1)^i{n\choose i}f_i\Leftrightarrow f_n=\sum\limits_{i=0}^n(-1)^i{n\choose i}g_i
gn=i=0∑n(−1)i(in)fi⇔fn=i=0∑n(−1)i(in)gi
至多
g
n
=
∑
i
=
0
n
(
n
i
)
f
i
⇔
f
n
=
∑
i
=
0
n
(
−
1
)
n
−
i
(
n
i
)
g
i
g_n=\sum\limits_{i=0}^n{n\choose i}f_i\Leftrightarrow f_n=\sum\limits_{i=0}^n(-1)^{n-i}{n\choose i}g_i
gn=i=0∑n(in)fi⇔fn=i=0∑n(−1)n−i(in)gi
至少
g
i
=
∑
j
=
i
n
(
j
i
)
f
i
⇔
f
i
=
∑
j
=
i
n
(
−
1
)
j
−
i
(
j
i
)
g
j
g_i=\sum\limits_{j=i}^n{j\choose i}f_i\Leftrightarrow f_i=\sum\limits_{j=i}^n(-1)^{j-i}{j\choose i}g_j
gi=j=i∑n(ij)fi⇔fi=j=i∑n(−1)j−i(ij)gj
有时根据左式可以拆和号把一个
f
f
f 化出来,变成
f
=
s
u
m
f
+
g
f=sum_f+g
f=sumf+g,然后可以
O
(
n
)
O(n)
O(n) 递推。
右式同理。
证明反演的套路是对于 g n = ∑ i = 0 n a i f i ⇔ f n = ∑ i = 0 n b i g i g_n=\sum\limits_{i=0}^na_if_i\Leftrightarrow f_n=\sum\limits_{i=0}^nb_ig_i gn=i=0∑naifi⇔fn=i=0∑nbigi 证明 ∑ j = i n a n j b j i = [ n = i ] \sum\limits_{j=i}^na_{nj}b_{ji}=[n=i] j=i∑nanjbji=[n=i]
min-max容斥
https://www.cnblogs.com/gzy-cjoier/p/9686787.html#4149190
kth-min-max容斥
Problem List
★★★★☆☆☆☆☆☆ luogu4707
单位根反演
斯特林(Stirling)反演
- 欧拉图计数 -
欧拉图计数
欧拉子图计数
欧拉回路计数
- 连通块计数 -
- Cayley定理 -
- 生成树计数 -
拉普拉斯(Laplace)矩阵
矩阵树(Matrix-Tree)定理
最小乘积生成树
- 一般树计数 -
https://www.cnblogs.com/dirge/p/5503289.html
- 多重集合组合排列 -
- 杜教筛 -
51nod2026
https://www.cnblogs.com/RabbitHu/p/9154403.html
- 洲阁筛 -
- Min_25筛 -
- Stern-Brocot Tree -
Farey序列
Farey neighbor
Stern-Brocot Tree
Stern-Brocot Tree切割曲线
Stern-Brocot Tree拟合曲线
Nash均衡+后缀树 https://blog.csdn.net/Mys_C_K/article/details/85263387
https://oi-wiki.org/math/game-theory/
斐波那契与威佐夫博弈 http://www.matrix67.com/blog/archives/6784
题poj1067
威佐夫extend→beatty定理、高斯取整
Nim积论文指路https://www.cnblogs.com/atmacmer/p/5249233.html
- 利用高斯消元法求解一类概率期望问题 -
https://blog.csdn.net/linxilinxilinxi/article/details/81810944
https://blog.csdn.net/clover_hxy/article/details/53966405
2008 8.高亦陶《从立体几何问题看降低编程复杂度》
https://www.lydsy.com/JudgeOnline/problem.php?id=3707
- 基本技巧 -
三角形面积
对于 △ A B C \small\triangle\mathrm{ABC} △ABC,设其面积为 S \small\mathrm{S} S。
其中 A ( x 1 , y 1 ) , B ( x 2 , y 2 ) , C ( x 3 , y 3 ) A(x_1,y_1),B(x_2,y_2),C(x_3,y_3) A(x1,y1),B(x2,y2),C(x3,y3), A B = c , B C = a , A C = b AB=c,BC=a,AC=b AB=c,BC=a,AC=b。行列式求面积: S = 1 2 ∣ x 1 y 1 1 x 2 y 2 1 x 3 y 3 1 ∣ {\mathrm S=\dfrac{1}{2}\left|\begin{array}{ccc}x_1&y_1&1\\x_2&y_2&1\\x_3&y_3&1\end{array}\right|} S=21∣∣∣∣∣∣x1x2x3y1y2y3111∣∣∣∣∣∣
半周长: s = 1 2 C = 1 2 ( a + b + c ) s=\dfrac{1}{2}\mathrm C=\dfrac{1}{2}(a+b+c) s=21C=21(a+b+c)
海伦公式: S = s ( s − a ) ( s − b ) ( s − c ) S=\sqrt{s(s-a)(s-b)(s-c)} S=s(s−a)(s−b)(s−c) 可以推广到求圆内接四边形面积。
欧拉示数性公式
立体形式:对顶点数、边数、面数分别为
V
,
E
,
F
\small\mathrm{V,E,F}
V,E,F的凸多面体,有:
V
−
E
+
F
=
2
\small\mathrm{V-E+F=2}
V−E+F=2
平面形式:
V
−
E
+
F
=
1
\small\mathrm{V-E+F=1}
V−E+F=1
欧拉示数性公式(立体形式)同样适用于球面三角剖分。
Problem List
★☆☆☆☆☆☆☆☆☆ nowcoder135F
托勒密定理
- 二维凸包 -
- 多边形重心&加权平均 -
- 扫描线 -
- 半平面交&增量法 -
- 三维凸包 -
- 平面最近点对 -
- 平面最远点对&旋转卡壳 -
- 数值积分 -
https://blog.csdn.net/Alearn_/article/details/80461258
- 最小覆盖圆&最小包围球 -
https://blog.csdn.net/WhereIsHeroFrom/article/details/79531050#commentBox
hdu2215
- 反演几何 -
https://blog.csdn.net/greatwall1995/article/details/8794959
https://blog.csdn.net/zhelong3205/article/details/78159693
见2018WC论文
定义有点像
ℓ
p
\ell_p
ℓp
万一鸽了呢