算法导论 Introduction to Algorithms #数学基础
数学基础
求和
常用公式
示例
from sympy import integrate
f = integrate('(log(x) / log(2)) ** s', (S('x'), 1, S('n')))
离散数学
集合、关系、函数
图和树
-
路径包含简单路径、环包含简单环
如果路径 \(p=\langle v_0,\ldots,v_n\rangle\) 不是简单路径,则满足 \(\exists i,j[i\ne j\wedge v_i=v_j]\)。不妨取 \(i<j\),删除 \(i,j\) 之间的所有节点得到新路径 \(p'=\langle v_0,\ldots,v_i,v_{j+1},\ldots,v_n\rangle\),一直删除直到变为简单路径即可。环同理。
-
有向无环图,存在节点 \(v_0\) 到其他节点均有唯一简单路径,则这个图的无向版本是树
若 \(v_0\) 到 \(u_1\) 只有一条简单路径,则无向版本也只有一条简单路径;同理 \(v_0\) 到 \(u_2\) 只有一条简单路径。则 \(u_1\) 到 \(u_2\) 也只有一条简单路径,这条路径正好是 \(p(u_1,v)+p(v,u_2)\)。
-
高度下界
若左子树高度下界为 \(\lfloor\lg m\rfloor\),右子树高度下界为 \(\lfloor\lg n\rfloor\),则整颗树高度下界为 \(1+\max(\lfloor\lg m\rfloor,\lfloor\lg n\rfloor)=\max(\lfloor\lg2m\rfloor,\lfloor\lg2n\rfloor)\)。
考虑到 \(2n\ne2^k-1\),因此 \(\lfloor\lg 2n\rfloor=\lfloor\lg(2n+1)\rfloor\),也就是说 \(\max(\lfloor\lg2m\rfloor,\lfloor\lg2n\rfloor)=\max(\lfloor\lg(2m+1)\rfloor,\lfloor\lg(2n+1)\rfloor)<\lfloor\lg(m+n+1)\rfloor\)。即整棵树的高度下界为 \(\lfloor\lg(m+n+1)\rfloor\)。
-
Kraft 不等式
\[\begin{align*} \sum_{x\in\rm Leaf}2^{-d(x)}\le1 \end{align*} \] -
满二叉树的内外路径长度
满二叉树的左右子树也是满二叉树,递归证明即可。
-
叶节点数为 \(L\ge2\) 的二叉树包含一个叶结点数在 \(L/3\) 到 \(2L/3\) 之间的子树
考察每一层节点叶节点数来组成一个路径 \(\langle v_0,\ldots,v_n\rangle\)。其中 \(v_0\) 为根节点,其叶节点数为 \(LeafCount(v_0)=L\);\(v_j\) 是 \(v_{j-1}\) 叶节点数最大的子树;\(v_n\) 为非叶节点的最后一层,其叶节点数为 \(LeafCount(v_n)=1\)。
-
如果其中存在一个节点满足题设条件 \(\exists v[L/3\le LeafCount(v)\le2L/3]\),则成功;
-
若不存在这样一个节点,则说明存在一个分界线 \(i\),分界线以前的节点的叶节点数大于题设要求,分界线以后的节点的叶节点数小于题设要求,\(\forall j\le i[LeafCount(v_j)>2L/3],\forall j>i[LeafCount(v_j)<L/3]\)。
即 \(LeafCount(v_i)>2L/3,LeafCount(v_{i+1})<L/3\),又因为 \(v_{i+1}\) 是 \(v_i\) 的子树,则 \(v_i\) 的另一个子树的叶节点数为 \(LeafCount(v_i)-LeafCount(v_{i+1})>L/3\)。但根据路径选择方法,叶节点数应该小于 \(v_{i+1}\) 的叶节点数,此处矛盾。
-
计数和概率
加法原理、乘法原理和容斥原理
鸽巢原理:\(k+1\) 个物体分成 \(k\) 份,至少有一份不少于 2 个
广义鸽巢原理:\(N\),\(k\),\(\lceil N/k\rceil\)
排列组合
二项系数
几何分布
二项分布
二项分布的尾部
示例
-
证明二项式界 \(\binom nk\le{n^n\over k^k(n-k)^{n-k}},k<n/2\)
\[\begin{align*} &&k<n/2&\implies k\le n-k-1\\ \text{because}&&{\mathrm d\over\mathrm dx}\left({x+1\over x}\right)^x&>0,\text{ and }\lim_{x\to\infty}\left({x+1\over x}\right)^x=e\\ \text{therefore}&&\left({k+1\over k}\right)^k&\le\left({n-k\over n-k-1}\right)^{n-k-1} \\ &&\binom n{k+1}&={n-k\over k+1}\binom nk\\ &&&\le{n^n\over (k+1)k^k(n-k)^{n-k-1}}\\ &&&\le{n^n\over (k+1)^{k+1}(n-k-1)^{n-k-1}} \end{align*} \] -
用斯特林近似(\(n!=\sqrt{2\pi n}(n/e)^n(1+\Theta(1/n))\))证明 \(\binom{2n}n={2^{2n}\over\sqrt{\pi n}}(1+O(1/n))\)
\[\begin{align*} &&\binom{2n}n&={(2n)!\over n!n!}\\ &&&={\sqrt{4\pi n}(2n/e)^{2n}(1+\Theta(1/n))\over[\sqrt{2\pi n}(n/e)^n(1+\Theta(1/n))]^2}\\ &&&={2^{2n}\over\sqrt{\pi n}}(1+\Theta(1/n)) \end{align*} \] -
熵函数与二项式的界,\(\binom n{\lambda n}\le2^{nH(\lambda)},0\le\lambda\le1\)
-
证明:\(\sum_{k=0}^n\binom nkk=n2^{n-1}\)
\[\begin{align*} &&\sum_{k=0}^n\binom nkk&=\sum_{k=1}^n\binom nkk\\ &&&=n\sum_{k=1}^n\binom{n-1}{k-1}\\ &&&=n\sum_{k=0}^{n-1}\binom{n-1}{k}\\ &&&=n2^{n-1} \end{align*} \] -
马尔可夫不等式:\(p(X\ge t)\le E[X]/t,X\ge0\)
\[\begin{align*} &&E[X]&=\int_0^\infty xp(x)\mathrm dx\\ &&&\ge\int_t^\infty xp(x)\mathrm dx\\ &&&\ge t\int_t^\infty p(x)\mathrm dx\\ &&&=tp(X\ge t) \end{align*} \] -
证明:\(b(k;n,p)\) 的最大值近似为 \(1/\sqrt{2\pi np(1-p)}\)
使用斯特林近似
\[\begin{align*} b(k;n,p)&=\binom nkp^k(1-p)^{n-k}\\ &\approx{n^{n+1/2}\over\sqrt{2\pi}k^{k+1/2}(n-k)^{n-k+1/2}}p^k(1-p)^{n-k}\\ &\xlongequal{k=np}\frac1{\sqrt{2\pi np(1-p)}} \end{align*} \] -
两人投硬币 \(n\) 次,正面次数相同的概率
\[\begin{align*} &&(x+1)^{2n}&=(x+1)^n\cdot(x+1)^n\\ &&&=\sum_{k=0}^n\binom nkx^k\cdot\sum_{k=0}^n\binom nkx^{n-k}\\ &&&=\cdots+\left[\sum_{k=0}^n\binom nk^2\right]x^n+\cdots\\ \text{moreover}&&(x+1)^{2n}&=\sum_{k=0}^{2n}\binom{2n}kx^k\\ &&&=\cdots+\binom{2n}nx^n+\cdots\\ \text{therefore}&&\sum_{k=0}^n\binom nk^2&=\binom{2n}n \\ &&p&=\sum_{k=0}^nb(k;n,1/2)\cdot b(k;n,1/2)\\ &&&=\frac1{4^n}\sum_{k=0}^n\binom nk^2\\ &&&=\left.\binom{2n}n\middle/4^n\right. \end{align*} \] -
熵函数和二项分布的界:\(b(k;n,1/2)=\binom nk2^{-n}\le2^{nH(k/n)-n}\)
-
二项分布的左右尾部的界的关系
通过改变左右尾部的界的 \(k,p\) 即可实现,具体为 \(k\leftrightarrow n-k,p\leftrightarrow 1-p\)。
比如:至少成功 \(k\) 次等同于至少失败 \(n-k\) 次,成功概率为 \(p\),则失败概率为 \(1-p\)。
-
证明:若 \(0<k<na(a+1),a>0\),则 \(\sum_{i=0}^{k-1}\binom nia^i<(a+1)^n\frac k{na-k(a+1)}b(k;n,a/(a+1))\)
\[\begin{align*} \sum_{i=0}^{k-1}\binom nia^i(a+1)^{-n}&=\sum_{i=0}^{k-1}\binom ni\left(\frac a{a+1}\right)^i\left(\frac1{a+1}\right)^{n-i}\\ &=\sum_{i=0}^{k-1}b(i;n,a/(a+1))\\ &\le{k/(a+1)\over na/(a+1)-k}b(i;n,a/(a+1))\\ &={k\over na-k(a+1)}b(i;n,a/(a+1)) \end{align*} \] -
求 \(p(\mu-X\ge r)\) 的界
类似二项分布左右界的关系,令 \(Y:=n-X\),则 \(E[Y]=n-E[X]\),代入即可。
-
证明:\(n\) 次伯努利试验,其中第 \(i\) 次成功的概率为 \(p_i\),\(X\) 为成功的总次数,\(\mu=E[X]\),则对于 \(r\ge0\) 有 \(p(X-\mu\ge r)\le e^{-r^2/2n}\)。
先证明 \(pe^{\alpha q}+qe^{-\alpha p}\le e^{\alpha^2/2}\)。
由式子的对称关系,只需考虑 \(\alpha\ge0\) 的情况即可。
\[\begin{align*} \text{let}&&f(x)&:=pe^{qx}+qe^{-px}- e^{x^2/2}\\ \text{then}&&f^\prime(x)&=pq(e^x-1)e^{-px}-xe^{x^2/2}\\ &&f^{\prime\prime}(x)&=pq(p+qe^x)e^{-px}-e^{x^2/2}-x^2e^{x^2/2}\\ &&&\le\frac14(p+qe^x)e^{-px}-e^{x^2/2}-x^2e^{x^2/2}\\ &&&\le\frac14(1+e^x)e^{-px}-e^{x^2/2}-x^2e^{x^2/2}\\ &&&\le\left[\frac14(1+e^x)-e^{x^2/2}\right]-x^2e^{x^2/2}\\ &&&<0+0=0\\ \text{i.e.}&&f^{\prime\prime}(x)&<0\\ \text{meanwhile}&&f^\prime(0)&=0\\ \text{therefore}&&\max f(x)&=f(0)=0\\ &&f(x)&\le0\\ &&pe^{\alpha q}+qe^{-\alpha p}&\le e^{\alpha^2/2} \end{align*} \]利用马尔可夫不等式,参考定理 C.8
\[\begin{align*} p(X-\mu\ge r)&=p(e^{\alpha(X-\mu)}\ge e^{\alpha r})\\ &\le E[e^{\alpha(X-\mu)}]e^{-\alpha r}\\ &=(p_ie^{\alpha q_i}+q_ie^{-\alpha p_i})^ne^{-\alpha r}\\ &\le e^{n\alpha^2/2-\alpha r}\\ &\xlongequal{\alpha\leftarrow r/n}e^{-r^2/2n} \end{align*} \]
矩阵
\(\operatorname{rank}(\pmb A_{m\times n})=\underset{r}{\arg\min}\pmb B_{m\times r}\pmb C_{r\times n},\text{ s.t. }\pmb A=\pmb B\pmb C\)
-
现有 \(\pmb A\pmb B=\pmb I\),若 \(\pmb A'\) 是 \(\pmb A\) 的第 \(j\) 行加到第 \(i\) 行所得,则取 \(\pmb B'\) 为 \(\pmb B\) 的第 \(j\) 列减去 \(i\) 列所得,有 \(\pmb A'\pmb B'=\pmb I\)
令 \(\pmb P_{ij}\) 为单位矩阵的第 \(i\) 行 \(j\) 列加一后的矩阵。
\[\begin{align*} &&\pmb A'&=\begin{bmatrix} 1&0&0&\cdots&0\\ 0&1&0&\cdots&0\\ \ddots&\ddots&\ddots&\ddots&\ddots&\\ \cdots&1&\cdots&1&\cdots\\ \ddots&\ddots&\ddots&\ddots&\ddots&\\ 0&0&0&\cdots&1\\ \end{bmatrix}\pmb A\\ &&&=\pmb P_{ij}\pmb A\\ \text{then}&&\pmb B'&=(\pmb A')^{-1}=(\pmb P_{ij}\pmb A)^{-1}=\pmb B\pmb P_{ij}^{-1} \end{align*} \]\(\pmb P_{ij}^{-1}\) 为单位矩阵在 \(i\) 行 \(j\) 列减一后的矩阵。
-
证明:\(\operatorname{rank}(\pmb A\pmb B)\le\min(\operatorname{rank}(\pmb A),\operatorname{rank}(\pmb B))\),如果 \(\pmb A\) 或 \(\pmb B\) 为非奇异矩阵,则取等号。
设 \(\pmb A\) 为 \(\pmb A_{m\times p}\),\(\pmb B\) 为 \(\pmb B_{p\times n}\)
\[\begin{align*} \operatorname{rank}(\pmb A_{m\times p})&=\underset{a}{\arg\min}\pmb A'_{m\times a}\pmb A''_{a\times p}\\ \operatorname{rank}(\pmb B_{p\times n})&=\underset{b}{\arg\min}\pmb B'_{p\times b}\pmb B''_{b\times n}\\ \operatorname{rank}((\pmb A\pmb B)_{m\times n})&=\underset{r}{\arg\min}\pmb C_{m\times r}\pmb D_{r\times n}\\ \pmb A\pmb B=\pmb C\pmb D&=\pmb A'\pmb A''\pmb B'\pmb B'' \end{align*} \]事实上,用 \(\pmb A'\pmb A''\pmb B'\pmb B''\) 可以组合成不同的 \(\pmb C\pmb D\),但这些 \(\pmb C\pmb D\) 不一定是所求的、满足 \(r\) 最小的 \(\pmb C\pmb D\)
\[\begin{align*} \text{let}&&r_b&:=\underset{b}{\arg\min}\pmb B'\pmb B''\\ \text{then}&&\pmb C&=\pmb A'\pmb A''\pmb B',\pmb D=\pmb B''\\[0.8em] \text{similarly, if}&&r_a&:=\underset{a}{\arg\min}\pmb A'\pmb A''\\ \text{then}&&\pmb C&=\pmb A',\pmb D=\pmb A''\pmb B'\pmb B''\\[0.8em] \text{therefore, if}&&r&:=\underset{r}{\arg\min}\pmb C\pmb D\\ \text{then}&&r&\le\min(r_a,r_b)\\[0.7em] \text{i.e.}&&\operatorname{rank}(\pmb A\pmb B)&\le\min(\operatorname{rank}(\pmb A),\operatorname{rank}(\pmb B)) \end{align*} \]非奇异矩阵为方阵。显然,\(\pmb A\) 为非奇异矩阵时,\(\min(\operatorname{rank}(\pmb A),\operatorname{rank}(\pmb B))=\operatorname{rank}(\pmb B)\),此时 \(\operatorname{rank}(\pmb A\pmb B)=\operatorname{rank}(\pmb B)\)。\(\pmb B\) 为非奇异矩阵时同理。
这也说明一个矩阵和非奇异矩阵相乘不会改变秩。