算法导论 Introduction to Algorithms #数学基础

数学基础

求和

常用公式

\[\begin{align*} \sum_{k=1}^nk&=\frac{n(n+1)}2=\Theta(n^2)\\ \sum_{k=1}^nk^2&=\frac{n(n+1)(2n+1)}6\\ \sum_{k=1}^nk^3&=\frac{n^2(n+1)^2}4\\ \sum_{k=1}^nx^k&={x^{n+1}-1\over x-1}\\ \sum_{k=1}^nkx^k&={x\over(x-1)^2}\\ \sum_{k=1}^n\frac1k&=\ln n+O(1) \end{align*} \]

\[\begin{align*} f^\prime(x)\ge0&\implies\int_{m-1}^nf(x)\mathrm dx\le\sum_{k=m}^nf(k)\le\int_m^{n+1}f(x)\mathrm dx\\ f^\prime(x)\le0&\implies\int_m^{n-1}f(x)\mathrm dx\le\sum_{k=m}^nf(k)\le\int_{m-1}^nf(x)\mathrm dx \end{align*} \]


示例

\[\begin{align*} &&\sum_{k=1}^n1/(2k-1)&=\frac12\sum_{k=1}^n\frac1{k-1/2}\\ \text{because}&&\frac12\sum_{k=1}^n\frac1k&<\frac12\sum_{k=1}^n\frac1{k-1/2}<\frac12\sum_{k=1}^n\frac1k+1\\ \text{i.e.}&&\frac12\ln n+O(1)&<\frac12\sum_{k=1}^n\frac1{k-1/2}<\frac12\ln n+O(1)+1\\ \text{therefore}&&\sum_{k=1}^n1/(2k-1)&=\ln(\sqrt n)+O(1)\\ \hline &&\sum_{k=0}^\infty{k-1\over2^k}\\ &&\sum_{k=0}^\infty{k-1\over x^k}&={\mathrm d\over\mathrm dx}\left(\sum_{k=0}^\infty{-1\over x^{k-1}}\right)={\mathrm d\over\mathrm dx}\left({-x^2\over x-1}\right)={x(2-x)\over(x-1)^2}\\ \text{therefore}&&\sum_{k=0}^\infty{k-1\over2^k}&=\left.\sum_{k=0}^\infty{k-1\over x^k}\right\vert_{x=2}=0\\ \hline &&\sum_{k=1}^\infty(2k+1)x^{2k}&,\vert x\vert<1\\ &&\sum_{k=1}^\infty x^{2k+1}&=x\sum_{k=1}^\infty(x^2)^k={x^3\over1-x^2}\\ \text{therefore}&&\sum_{k=1}^\infty(2k+1)x^{2k}&={\mathrm d\over\mathrm dx}\left(\sum_{k=1}^\infty x^{2k+1}\right)={x^2(3-x^2)\over(1-x^2)^2}\\ \hline &&\prod_{k=2}^n(1-1/k^2)&=\prod_{k=2}^n{(k-1)(k+1)\over k^2}={n+1\over2n} \end{align*} \]

\[\begin{align*} \text{pf}&&\sum_{k=1}^n1/k^2&=O(1)\\ &&\sum_{k=1}^n1/k^2&=1+\sum_{k=2}^n1/k^2<1+\int_1^n\frac1{x^2}\mathrm dx<2\\ \hline &&\sum_{k=0}^{\lfloor\lg n\rfloor}\lceil n/2^k\rceil\\ \text{let}&&m:=2^{\lceil\lg n\rceil}&,n\le m\le2n\\ &&\sum_{k=0}^{\lfloor\lg n\rfloor}\lceil n/2^k\rceil&\le\sum_{k=0}^{\lfloor\lg m\rfloor}\lceil m/2^k\rceil=\sum_{k=0}^{\lceil\lg n\rceil}2^{\lceil\lg n\rceil-k}\\ &&&=2m-1\le4n-1=O(n)\\ \hline \text{pf}&&\sum_{k=1}^n\frac1k&=\Omega(\lg n)\\ &&\sum_{k=1}^n\frac1k&\ge\sum_{i=0}^{\lceil\lg n\rceil-2}\sum_{j=0}^{2^i-1}\frac1{2^i+j}\\ &&&\ge\sum_{i=0}^{\lceil\lg n\rceil-2}\sum_{j=0}^{2^i-1}\frac1{2^{i+1}}\\ &&&\ge\sum_{i=0}^{\lceil\lg n\rceil-2}\frac12\\ &&&\ge\frac12\lg n-\frac12=\Omega(\lg n) \end{align*} \]

\[\begin{align*} &&\int_0^nx^r\mathrm dx\le\sum_{k=1}^nk^r&\le\int_1^{n+1}x^r\mathrm dx\\ &&{n^{r+1}\over r+1}\le\sum_{k=1}^nk^r&\le{(n+1)^{r+1}-1\over r+1}\\ &&\sum_{k=1}^nk^r&=O(n^{r+1})\\ \end{align*} \]

from sympy import integrate
f = integrate('(log(x) / log(2)) ** s', (S('x'), 1, S('n')))

\[\begin{align*} f&=(-\log2)^{-s}[e^{-i\pi s}\Gamma(s+1)+\Gamma(s+1,-\log n)] \end{align*} \]

离散数学

集合、关系、函数


图和树

  • 路径包含简单路径、环包含简单环

    如果路径 \(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\)

排列组合

\[\begin{align*} P(n,r)&={n!\over(n-r)!}\\ C(n,r)&={n!\over(n-r)!r!}\\ \binom{n+1}{k}&=\binom{n}{k-1}+\binom nk\\ 可辩别物体\ n\ 和可辩别盒子\ k&:{n!\over\prod_{i=1}^kn_i!} \\ 不可辩别物体\ n\ 和可辩别盒子\ k&: C(k+n-1,n)={(k+n-1)!\over(k-1)!n!} \\ 可辩别物体\ n\ 和不可辩别盒子\ k&:\sum_{j=1}^kS(n,j)=\sum_{j=1}^k\frac1{j!}\sum_{i=0}^{j-1}(-1)^i\binom ji(j-i)^n \\ 不可辩别物体和不可辩别盒子&: \\ \end{align*} \]

二项系数

\[\begin{align*} (n/k)^k&\le\binom nk\le{n^n\over k^k(n-k)^{n-k}}\\ \binom nk&\le{n^k\over k!}\le(en/k)^k \end{align*} \]

几何分布

\[\begin{align*} p(X=k)&=(1-p)^{k-1}p\\ E[X]&=1/p\\ D[X]&=(1-p)/p^2 \end{align*} \]

二项分布

\[\begin{align*} b(k;n,p)&=\binom nkp^k(1-p)^{n-k}\\ E[X]&=np\\ D[X]&=np(1-p)\\ b(k;n,p)&\le\left({np\over k}\right)^k\left({n(1-p)\over n-k}\right)^{n-k} \end{align*} \]

二项分布的尾部

\[\begin{align*} p(X\ge k)&=\sum_{i=k}^nb(i;n,p)\le\binom nkp^k\\ p(X\le k)&=\sum_{i=0}^kb(i;n,p)\le\binom n{n-k}(1-p)^{n-k}\\ 0<k<np,p(X<k)&=\sum_{i=0}^{k-1}b(i;n,p)<{k(1-p)\over np-k}b(k;n,p)\\ np<k<n,p(X>k)&=\sum_{i=k+1}^nb(i;n,p)<{(n-k)p\over k-np}b(k;n,p)\\ r>\mu=E[X],p(X-\mu\ge r)&\le\left(\frac{\mu e}r\right)^r\\ 0<k\le np/2&,{p(X<k)\over p(X<k+1)}<\frac12\\ \end{align*} \]


示例

  • 证明二项式界 \(\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\) 为非奇异矩阵时同理。

    这也说明一个矩阵和非奇异矩阵相乘不会改变秩。

posted @ 2022-11-23 14:19  Violeshnv  阅读(14)  评论(0编辑  收藏  举报