一、排列与组合
最基本也是最重要的两个法则:加法法则和乘法法则。
加法法则:完成一件事有两类方法,第一类有m种,第二类有n种,那么完成这件事总共就有m+n种方法。
乘法法则:完成一件事有两个步骤,第一步有m种方法,第二步有n种方法,那么完成这件事一共有mn种方法。
特殊的排列组合:
圆周排列:对于圆周排列而言,没有开始与结束之分,重要的是其相对位置,如果转动一下就能重复的属于相同的排列,假设实际有x种排列,这X种排列转n次对应n个元素的全排列。一般的,对于n元集上的r元圆排列个数为:Q(n,r) = P(n,r)/r。
允许重复的组合:在n个不同的元素中,取r个作允许重复的组合,其组合个数是C(n+r-1,r)。
其模型是r个无区别的球放入n个有区别的盒子中,允许不同的盒子放相同数目的球。
直观上可以这样理解,共n+r个元素,从1--n+r-1个元素中选r个代表球,紧邻这个球的元素就是它所处的盒子,总共就是C(n+r-1,r).
其他还有排列生成算法,Stirling公式等。
递推关系与母函数在解决复杂的排列组合时非常有用。
比如经典的汉诺塔问题,斐波那契额序列等。对于递推公式的解法分为线性常系数齐次递推关系与线性常系数非齐次递推关系。
对于齐次的情况又分为3种,a)不同根的情况;b)二重根的情况;c)复根的情况。
非齐次的通解等于齐次的通解+非齐次的特解。
常见幂级数的展开式:
母函数在整数拆分方面的应用,模型相当于把n个无区别的球放入n个无区别盒子的方案数。
Ferrers图像也和母函数一样是研究拆分的一种工具,可以用来做一些证明。
假定我们将n拆分成n=n1+n2+...+nk,其中 n1>=n2>=n3...>=nk.将n个点排列成从上到下非增的行,第一行n1个点,第二行n2个点。。。这样的图像叫Ferrers图像。
性质:
1)每层至少一个点;
2)Ferrers图像行列互换,结果仍然是Ferrers图像。
拆分数估计。
广义二项式定理:
指数型母函数:与组合的情况相比,要除以n!,原因是某个元素重复n次会被多计算n!次。
容斥原理与鸽巢原理
a)德摩根定理
推广:
b)容斥原理:
两个集合的:
三个集合的:
c)广义容斥原理:
d)棋盘多项式与有禁区的排列
d)鸽巢原理:即n+1只鸽子飞到n个巢中,至少有一个巢有两只鸽子。
鸽巢原理的推广:
推论1:m只鸽子,n个巢,则至少一个鸽巢里有(m-1)/n+1只鸽子。
推论2:n(m-1)+1个球放进n个盒子,则至少有一个盒子有m个球。
Burside引理与Polya定理:
Polya定理: