组合数学
排列组合
二项式定理
\[\begin{pmatrix} n \\ k \end{pmatrix} + \begin{pmatrix} n \\ k-1 \end{pmatrix}=\begin{pmatrix} n+1 \\ k \end{pmatrix}
\]
\[\dfrac{n!}{k!\left( n-k\right) !} + \dfrac{n!}{\left(k-1\right)!\left( n-k+1\right) !}=\dfrac{\left( n+1 \right)!}{k!\left( n-k+1\right) !}
\]
两边同时除以$$\dfrac{n!}{\left( k-1\right) !\left( n-k\right) !}$$
\[\dfrac{1}{k}+\dfrac{1}{n-k+1}=\dfrac{n+1}{k\left( n-k+1\right) }
\]
明显相等
\[\left( x_1+x_2+x_3+\ldots +x_n\right)^m=\sum_{\text{满足}t_1+t_2+t_3+\ldots t_n=m\text{的非负整数解}}\begin{pmatrix} m \\ t_1t_2t_3\ldots t_n \end{pmatrix} x_1^{t_1}x_2^{t_2}x_3^{t_3}\ldots x_n^{t_n}
\]
可以看成有\(m\)个抽屉,每个抽屉里都有\(x_1,x_2,x_3\ldots x_n\),每个抽屉拿一个,那么对于一种拿了\(t_1\text{个}x_1,t_2\text{个}x_2,t_2\text{个}x_2\ldots t_n\text{个}x_n\)就有\(\begin{pmatrix} m \\ t_1t_2t_3\ldots t_n \end{pmatrix}\)拿法
\[\sum \begin{pmatrix} m \\ t_{1}t_{2}t_{3}\ldots t_{n} \end{pmatrix}=n^{m}
\]
根据上面的具象,容易得出总共有\(n^m\)种拿法
排列与组合进阶篇
多重集的组合数\(1\)
对于从集合\(S=\left\{ n_{1}\text{个}a_{1},n_{2}\text{个}a_{2},n,\text{个}a_{3}\ldots n_k \text{个}a_k\right\}\)选出\(r(r\leq n_{i},\forall i\in \left[ 1,k\right])\)个的方案数,其实就是从\(n_1\text{个}a_1\text{中选}r_1\text{个}\),\(n_2\text{个}a_2\text{中选}r_2\text{个}\),\(n_3\text{个}a_3\text{中选}r_3\text{个}\)...\(n_k\text{个}a_k\text{中选}r_k\text{个}\),且\(r_1+r_2+r_3 \ldots r_k=r\)
那就是把\(r\)分成\(k\)段(允许空段)的方案数(有顺序关系)
考虑插板法,因为插板法不允许有空,所以要先加上一个\(k\),算出在\(r+k-1\)个空里选出\(k-1\)个空的方案数,答案就为\(\begin{pmatrix} r-k+1 \\ k-1 \end{pmatrix}\)
多重集的组合数\(2\)
问题其实就是上面的问题\(r\)没有了限制之后的方案数
那个\(\bigcap_{i=1}^{k} S_i\)是将所有\(S_i\)取交集的意思
\(\bigcup_{i=1}^k \overline{S_i}\)是将所有\(\overline{S_i}\)取并集的意思
\[\begin{aligned} \left|\bigcup_{i=1}^k\overline{S_i}\right| =&\sum_i\left|\overline{S_i}\right| -\sum_{i,j}\left|\overline{S_i}\cap\overline{S_j}\right| +\sum_{i,j,k}\left|\overline{S_i}\cap\overline{S_j}\cap\overline{S_k}\right| -\cdots\\ &+(-1)^{k-1}\left|\bigcap_{i=1}^k\overline{S_i}\right|\\ =&\sum_i\binom{k+r-n_i-2}{k-1} -\sum_{i,j}\binom{k+r-n_i-n_j-3}{k-1}+\sum_{i,j,k}\binom{k+r-n_i-n_j-n_k-4}{k-1} -\cdots\\ &+(-1)^{k-1}\binom{k+r-\sum_{i=1}^kn_i-k-1}{k-1} \end{aligned}
\]
\[Ans=\sum_{p=0}^k(-1)^p\sum_{A}\binom{k+r-1-\sum_{A} n_{A_i}-p}{k-1}
\]
满足
\[|A|=p,\ A_i<A_{i+1}
\]
不相邻的排列
\(1 \sim n\)这\(n\)个自然数中选\(k\)个,这\(k\)个数中任何两个数不相邻数的组合有多少种
那其实就是要把\(n-k\)个数分成\(k\),同理插板法
\[Ans=\begin{pmatrix} n-k+1 \\ k \end{pmatrix}
\]
错位排列
比较简单,但\(OI-wiki\)上写的递推式可能不太好理解,
我比较喜欢写成\(f\left( n\right) =f\left( n-1\right) \times \left(n-1\right)+f\left( n-2\right) \times \left( n-1 \right)\)
第一个式子表示\(n-1\)位全是错排,第二个式子表示前\(n-1\)位有\(n-2\)位是错排,乘\(n-1\)表示没有错排的位置在哪。
卡特兰数
递推式
其实递推式是从下面的问题推过来的
\[H_n = \frac{\binom{2n}{n}}{n+1}(n \geq 2, n \in \mathbf{N_{+}})
\]
斯特林数
第二类斯特林数
通项公式
\(OI-wiki\)上写的,我可以从这个式子推导
\[\begin{Bmatrix}n\\m\end{Bmatrix}=\dfrac{1}{m!}\sum ^{m}_{i==0}\left( -1\right) ^{i}\begin{pmatrix} m \\ i \end{pmatrix}\left( m-i\right) ^{n}
\]
首先\(\dfrac{1}{m!}\)表示将\(m\)个盒子无序
之后利用容斥,计算有\(i\)个空盒时的方案数
其实化简一下,跟它时一样的
康托展开
正
意思就是给出一个\(n\)的全排列,
他在全排列中的排名就是(排名从\(1\)开始)
\[1+\sum ^{n}_{i=1}\left( n-i\right) !\times \left( i-1-\sum ^{i-1}_{j=1}[ a_{i} < a_{j}]\right)
\]
反
每次除\(i!\),主要是看剩下数中小于它的有几个
容斥原理
记住公式,题目自己推就行了
\[\left|\bigcup_{i=1}^{n}S_i\right|=\sum_{m=1}^n(-1)^{m-1}\sum_{a_i<a_{i+1} }\left|\bigcap_{i=1}^mS_{a_i}\right|
\]
拆分数
将\(n\)拆分成\(k\)个数方案数的递推式为
\[p(n,k)=p(n-1,k-1)+p(n-k,k)
\]