排列与组合
加法法则与乘法法则
基础思想:分类计数使用加法,分步计数使用乘法
Cayley定理
\(n\)个有标号顶点的树的个数为\(n^{n-2}\)
证明:定义一个消去序列,序列与树一一对应(略)。
排列与组合
\(n\)元\(r\)排列:\(\frac{n!}{(n-r)!}\)
\(n\)元\(r\)组合:组合数(naive)
\(n\)元\(r\)可重排列:\(n^r\)(naive)
\(n\)元\(r\)可重组合:\(\binom{n+r-1}{r}\)
多重集\(S=\{(a_1,k_1),(a_2,k_2),...,(a_n,k_n)\}\)
多重集的全排列:\(\frac{n!}{k_1!k_2!...k_n!}\)
多重集的\(r\)组合:\(\binom{n+r-1}{r}(\forall k\ge r)\)
隔板法、放缩法是解释组合意义的利器
组合问题与二项式系数、格路问题的联系
Wallis公式与Stirling公式
Stirling公式:\(n!\backsim \sqrt{2n\pi}(\frac n e)^n\)
貌似OI不怎么用得上?
递推关系与母函数
母函数
对一个数列\(a_0,a_1,a_2...\)构造函数
\[G(x)=a_0+a_1x+a_2x^2+...\]
称为母函数,其长度可以是无穷大。
母函数的表示及求解
大部分无穷大的母函数可以写成若干个无穷等比数列的和
无穷等比数列求和公式:\(S=\frac{a_1}{1-q}\)(不失一般性地设\(0<q<1\),由有穷等比数列求和\(S_n=\frac{a_1(1-q^n)}{1-q}\)将\(q^n\)看作无穷小可以推导出)
求解的一般步骤
一、写出递推式(形如\(a_i=f(a_{i-1})\),记为递推式的第\(i\)项)
二、递推式的第\(i\)项两边乘上\(x^i\),最后所有等式左右两边分别求和,形如
\[a_1x+a_2x^2+a_3x^3+...=f(a_0)x+f(a_1)x^2+f(a_2)x^3+...\]
三、通过移项、无穷等比数列求和、因式分解等变换,把上面的大等式大概写成这样(分子是任意一个多项式\(P(x)\),不用在意)
\[G(x)=\frac{P(x)}{(1-q_1x)(1-q_2x)...}\]
四、上式可以裂项成若干等比数列的和
\[G(x)=\frac{A_1}{(1-q_1x)}+\frac{A_2}{(1-q_2x)}+...\]
待定系数法,将上式通分以后,根据合并后的分子与上面的\(P(x)\)对应项的系数相等,联立方程组解出\(A_1,A_2,...\)。
母函数的应用
写出数列的母函数后,我们可以写出数列的通项公式,进而快速求出数列指定项\(a_n\)的值。
既然我们可以把大部分母函数写成等比数列和的形式,那么我们就对于每一个等比数列,算出它的\(x^n\)的系数,最后相加即可得到\(a_n\)。
优选法
就是三分求单峰函数的极值,只不过在区间的\(0.382\)和\(0.618\)等分点求值,这样有一个值在下一次的时候还能用上。
利用Fibonacci数列后一项比上前一项接近\(0.618\)的性质,可以使优选法取到整点。
线性常系数齐次递推关系
对于数列\(\{a_n\}\)有递推式
\(a_n+c_1a_{n-1}+c_2a_{n-2}+...+c_ka_{n-k}=0(a_0=d_0,a_1=d_1,...a_{k-1}=d_{k-1})\)
若\(\forall c,d\)都是常数,则称上式为\(k\)阶线性常系数齐次递推关系
\(C(x)=x^k+c_1x^{k-1}+c_2x^{k-2}+...+c_{k-1}x+c_k\)称为特征多项式。
求解
经过复杂的变换,数列的母函数一定可以写成
\[G(x)=\frac{P(x)}{1+c_1x+c_2x^2+...+c_kx^k}\]
其中\(P(x)\)为一个极其复杂的最高次项不超过\(k-1\)的多项式。
分母显然等价于\(x^kC(\frac 1 x)\),于是考虑解方程
\[C(x)=(x-α_1)^{k_1}(x-α_2)^{k_2}...(x-α_t)^{k_t}\]
\(α_1,α_2,...α_t\)为\(C(x)\)在复数域内的\(t\)个根,称为特征根。显然可能有重根,\(k_i\)即为\(α_i\)的重复次数,于是有\(\sum\limits_{i=1}^t k_i=k\)
于是将\(k\)个\(x\)乘进分母中得出
\[G(x)=\frac{P(x)}{(1-α_1x)^{k_1}(1-α_2x)^{k_2}...(1-α_tx)^{k_t}}\]
开始求\(x^n\)系数\(a_n\),三种情况只好死记硬背
单根
设有若干单根\(α_1,α_2,...α_k\)
直接待定系数\(A_1α_1^n+A_2α_2^n+...+A_kα_k^n\)
复根
如果出现复根,肯定是一对一对的共轭复根\(ρ(\cosθ\pm i\sinθ)\)
待定系数\(Aρ^n\cos nθ+Bρ^n\sin nθ\)
多重根
有一个\(k\)重根\(α\)
待定系数\((A_0+A_1n+A_2n^2+...+A_{k-1}n^{k-1})α^n\)
貌似也适用于单根\((k=1)\)
三种情况的待定系数式相加即为\(a_n\)的表达式
将初始值\(a_0=d_0,a_1=d_1,...a_{k-1}=d_{k-1}\)带入\(a_n\)的表达式中,得到一个\(k\)元方程组,求解即可。
系数都求出来了,\(a_n\)当然求出来啦!
整数的拆分
更新中~
原文地址:https://www.cnblogs.com/flashhu/p/9568368.html