组合数学学习小记

有关组合数学的小记,不喜勿喷

1.第一类斯特林数:表示将$ n$ 个不同元素构成\(m\)个圆排列的数目。

递推式:\(s(n,m)=s(n-1,m-1)+s(n-1,m)*(n-1)\)

递推式证明如下:


我们考虑第\(n\)个元素放的位置。

(1)前\(n-1\)个元素构成了\(m-1\)个圆排列,第\(n\)个元素独自构成一个圆排列:\(s(n-1,m-1)\)

(2)前\(n-1\)个元素构成了\(m\)个圆排列,第\(n\)个元素插入到任意元素的左边:\((n-1)*S(n-1,m)\)

综上:\(s(n,m)=s(n-1,m-1)+s(n-1,m)*(n-1)\)


对于第一类斯特林数我们有以下特点:

1.\(s(n,n-2)=2*C(n,3)+3*C(n,4)\)

2.\(s(n,n-1)=C(n,2)\)

3.\(\sum_{i=0}^{n}s(n,i)=n!\)

2.第二类斯特林数:表示将\(n\)个不同的元素拆分成\(m\)个非空集合的方案数。

递推式:\(S(n,m)=S(n-1,m-1)+m*S(n-1,m)\)


同理,我们还是考虑第\(n\)个元素的放置情况。

(1)前\(n-1\)个元素构成了\(m-1\)个集合,那么第\(n\)个元素单独构成一个集合:\(S(n-1,m-1)\)

(2)前\(n-1\)个元素已经构成了\(m\)个集合,将第\(n\)个元素插入到任意一个集合:\(m*S(n-1,m)\)

综上:\(S(n,m)=S(n-1,m-1)+S(n-1,m)*m\)


同时附上一个第二类斯特林数的容斥公式:\(S(n,m)=\frac{1}{m!}*\sum_{i=0}^{m}{(-1)^i*C(m,i)*(m-i)^n}\)

第二类斯特林数的实际意义

(1)n个不同的球,放入m个有区别的盒子,不允许盒子为空,方案数:\(m!*S(n,m)\)

(2)n个不同的球,放入m个无区别的盒子,允许盒子为空,方案数:\(\sum_{i=0}^{m}S(n,i)\)

PS:一个有趣的事实:\(\sum_{i=0}^{n}S(n,i)*s(i,m)=\sum_{i=0}^{n}s(n,i)*S(i,m)\)

3.卡特兰数

卡特兰数的实际意义和证明方法过多,笔者不再阐述,下面直接给出通项公式和递推公式。

\(Cat_n=C(2*n,n)-C(2*n,n-1)=\frac{C(2*n,n)}{n+1}=Cat_{n-1}*\frac{4n-2}{n-1}\)

常见意义:合法出栈方案数,二叉树方案数......

4.圆排列:表示从\(n\)个元素中选\(m\)个在圆周上构成不同的圆的方案数

通项公式:\(\frac{n!}{(n-m)!*m}\)

5.错位排列:\(n\)的相异的元素排成一排,第\(i\)个元素不在第\(i\)位上的方案数

通项公式:\(D_n=(n-1)*(D_{n-1}+D_{n-2})\)

证明如下:


我们假设第\(n\)个数排在第\(k\)位上,其中\(k\in[1,n-1]\)

(1).当第\(k\)个数排在第\(n\)位时,除了第\(n\)个数和第\(k\)个数以外还有\(n-2\)个数,其方案数为\(D_{n-2}\)

(2).当第\(k\)个数不排在第\(n\)位时,将第\(n\)位重新想成新的“第\(k_1\)位”,这时的包括第\(k\)个数在内的剩下\(n-1\)个数的每一种错排,方案数为\(D_{n-1}\)

由于,\(k\in[1,n-1]\),所以\(D_n=(n-1)*(D_{n-1}+D_{n-2})\)


附上一个容斥的公式:\(D_n=n!*\sum_{i=2}^{n}{(-1)^i*\frac{1}{i!}}\)

6.隔板法

(1).\(n\)个同样的小球分成\(m\)个不同的组别,每组不为空,方案数为:\(C(n-1,m-1)\)

(2).\(n\)个同样的小球分成\(m\)个不同的组别,每组可以为空,方案数为:\(C(n+m-1,m-1)\)

先写到这了,以后有东西再补。。。。。

posted @ 2019-10-09 20:08  dsjkafdsaf  阅读(241)  评论(1编辑  收藏  举报