有关组合数学的小记,不喜勿喷
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)位上,其中(kin[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})。
由于,(kin[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))。
先写到这了,以后有东西再补。。。。。