写在前面
- 任课教师:杨国武、卢光辉
- 参考教材:《组合数学及其应用》,清华大学出版社
知识点总结
符号表
| 符号 |
含义 |
| N |
自然数集合 |
| × |
直积 |
| B |
重集 |
| P(n,r) |
从n个元素取出r个的线排列 |
| C(n,r),(rn) |
从n个元素取出r个的组合数 |
| F(n,r) |
从n个元素取出r个的重复组合数 |
| D(n) |
n个元素的错排数 |
第一章-排列、组合与二项式定理
1.1 加法原理与乘法原理
Theorem 1.1.1 加法规则:设S为有限集合,如果Si⊆S,S=⋃i=1mSi,且i=j时,Si∩Sj=Φ, 则有:
∣S=∣∣i=1⋃mSi∣=i=1∑m∣Si∣
换言之,当我们要求一个集合里的事物个数,我们可以将这个集合划分为几个互不相交的子集,将每个子集里的事物个数相加。
Theorem 1.1.2 乘法规则:若Si,(i=1,2,...,m)为有限集,且S=S1×S2×...×Sm={(a1,a2,...,am)∣ai∈Si,i=1,2,...,m}, 则有:
∣S∣=∣S1×S2×...×Sm∣=i=1∏m∣si∣
换言之,如果有i个互相独立的事件分别有a1,a2,...,ai种方法产生,则同时产生这i个事件的方法数为∏i=1m∣ai∣. 定理1.2中的×代表直积。
排列组合问题的分类
从排列的角度:计算事物的有序安排/选择数 OR 无序安排/选择数;
从组合的角度:不允许任何事物重复/允许事物重复
集合、重集的概念
Definition 1. 集合(略)
Definition 2. 重集:有重复元素的集合,一般形式为B={k1⋅b1,k2⋅b2,...,kn⋅bn},意为重集B中有k1个b1,k2个b2,…以此类推。
1.2 排列
排列问题可以分为:线排列、圆排列、重排列。如他们的名字一样,线排列即把元素排成一条线(首尾不重叠),圆排列即排成一个环(首尾重叠)、重排列涉及到如果对一个重集内的所有元素做排列。⚠️注意,排列问题是有先后之分的。
Definition 1.2.1: (线排列) 设集合A={a1,a2,...,an}. 从这n个元素中取出r个(r≤n),按照一定次序排列起来,称为集合A的r−排列/r−有序子集。集合A的r−排列的所有方法个数记为P(n,r)。
Theorem 1.2.1: 对于正整数n,r,r≤n,有:
P(n,r)=n(n−1)(n−r+1)=(n−r)!n!
Corollary: 当n≥r≥2时,有:
P(n,r)=nP(n−1,r−1)=rP(n−1,r−1)+P(n−1,r)
证明思路:在 n 个元素中取出并按顺序排成 r 个(即 P(n,r))——我们对一个“特别元素”(比如第 n 个)是否被选用进行分类。
-
情形 A:特别元素被选用
- 它必须放在这 r 个位置中的某一个:有 r 种放置方式;
- 剩下 r−1 个位置由其余 n−1 个元素按顺序填充:有 P(n−1,r−1) 种;
- 合计:r⋅P(n−1,r−1)。
-
情形 B:特别元素未被选用
- 全部 r 个位置都从其余 n−1 个元素里产生:有 P(n−1,r) 种。
两类互斥且穷尽,因此
P(n,r)=选用特别元素rP(n−1,r−1)+不选特别元素P(n−1,r).
证毕。
题型总结:
- 常规题型,直接利用集合A的r−排列定义计算
- 捆绑元素,要求一个元素紧跟另一个的前/后/某一特定位置, 或者逆向思维两个元素要求不满足XX条件。
Definition 1.2.2: (圆排列) 设集合A={a1,a2,...,an}. 从这n个元素中取出r个(r≤n),按照一定次序排列成一个圆圈(顺时针/逆时针),称为集合A的圆排列/循环排列。
Theorem 1.2.2: 对于正整数n,r,r≤n,其圆排列的个数为:
rP(n,r)=r(n−r)!n!
Definition 1.2.3: (重排列) 设重集B={k1⋅a1,k2⋅a2,...,kn⋅an}. 从这些元素中取出r个(r≤n),按照一定次序排列,称重集B的r−排列为重排列。
Theorem 1.2.3: 重集B={∞⋅a1,∞⋅a2,...,∞⋅an}的r−排列个数为nr.
Theorem 1.2.4: 重集B={k1⋅a1,k2⋅a2,...,kn⋅an}的全排列个数为k1!k2!...kn!(k1+k2+...+kn)!.
证明思路:要算全排列的个数,先看重集B有多少个元素(共有(k1+k2+⋯+kn)个),如果把这个集合当做一个普通集合,那么全排列一共有n!个。又因为对于重集里的每一个组(ki⋅ni),都有ni种排列方式,相当于每一种都多算了这么多,所以要去掉这些重复的。
1.3 组合
Definition 1.3.1: 设A={a1,a2,...,an}是具有n个元素的集合,r是非负整数。从这n个不同的元素里取r个不考虑次序组合起来(r≤n),称为集合A的r-组合/r-无序子集。 记为C(n,r).
THeorem 1.3.1: 对于r≤n,C(n,r)=r!P(n,r)=r!(n−r)!n!
Proof: 从n个不相同的元素里取r个元素的组合个数为C(n,r)。而r个元素可以组成r!个r-排列,即r!C(n,r)=P(n,r)
Corollary 1: C(n,r)=C(n,n−r),C(n,0)=C(n,n)=1
从n个不同的元素中选出r个元素,就有n-r个元素没有被选出。因此选出r个元素的方式数等于选出n-r个元素的方式数.
Corollary 2 (Pascal’s Formula): C(n,r)=C(n−1,r)+C(n−1,r−1)
Proof:
C(n,r)=r!(n−r)!n!=r!(n−r)!n(n−1)!=[(n−r)+r]r!(n−r)!(n−1)!=r!(n−r)!(n−r)(n−1)!+r!(n−r)!r(n−1)!=r!(n−1−r)!(n−1)!+(r−1)!((n−1)−(r−1))!(n−1)!=C(n−1,r)+C(n−1,r−1)
题型总结:
- 数的整除问题,通常需要素数分解再继续做,或者根据公因数分组然后再分类讨论。
Definition 1.3.2(重复组合): 从重集B={k1⋅b1,k2⋅b2,...,kn⋅bn}中选取r个元素不考虑次序组合起来,称为从B中取r个元素的重复组合 F(n,r)
Theorem 1.3.2: B={∞⋅b1,∞⋅b2,...,∞⋅bn}的r组合数为F(n,r)=C(n+r−1,r)
Proof: 比较Tricky。要解决的是从n种元素中可重复的挑出来r个做组合,要明白,{b1,b1,b2}和{b2,b1,b1}...等取法是等价的。为转化问题,将b1,b2,...,bn用数字代替,即b1→1, b2→2, …。整个集合就只有重复的1,2,3,…,n这些数。每一种取法就可以转化为一个非递减的数列:c1,c2,...cr,其中满足1≤c1≤c2≤...≤cr.
令di=ci+i−1, 则有:
f:11≤C1↓+0≤d1≤C2↓+1<d2≤<⋯⋯⋯≤Cr↓+(r−1)<dr≤n≤n+r−1.
f是一个唯一的映射关系,而第一个数列中间是小于等于(可重复),第二个数列中间是小于(不可重复)。所以问题转化为了“从1到n-r+1,选出不重复的r个数的组合个数”问题,即C(n−r+1,r)
在Theorem 1.3.2中,如果B的不同元素的重复数至少是r,则结论仍成立。
题型总结:
- 多元方程的非负整数解:对于每个满足方程x1+x2+...+xn=r的非负整数解x1,x2,...,xn都对应于重集B的一个r-组合。于是,方程x1+x2+...+xn=r的非负整数解的个数就等于重集B={∞⋅b1,}的r-组合数。
1.4 二项式定理
Definition 1.4.1: 当n是一个正整数时对任何x和y,有 $$(x + y)^n = \sum_{k = 0}^{n} \binom{n}{k} x^k y^{n - k}$$
Corollary: (二项式系数的相关性质)
- (x+y)n=∑k=0n(kn)xkyn−k=∑k=0n(kn)xn−kyk=∑k=0n(n−kn)xn−kyk
- (在1.的基础上,若y=1,) (1+x)n=∑k=0n(kn)xk
- (在1.&2.的基础上,若x=1,) ∑k=0n(kn)=2n;另一种表述:在具有n个元素的集合中,所有子集的个数为2n
- (在1.&2.的基础上,若x=−1,) 当n为正整数,∑k=0n(kn)(−1)k=0; 另一种表述:在具有n(n=0)个元素的集合中,偶数子集的个数与奇数子集的个数相等。
Definition 1.4.2 (广义二项式系数): 对于任何实数α和整数k,有
(kα)=⎩⎨⎧k!α(α−1)⋯(α−k+1),1,0,k>0,k=0,k<0.
对于满足 ∣yx∣<1的所有x和y有 (x+y)α=∑k=0∞(kα)xkyα−k (牛顿二项式定理)
Corollary: (广义二项式系数的相关性质)
- 令z=yx,∣z∣<1, (1+z)α=∑k=0∞(kα)zk
- (在1.的基础上,令α=−n) (1+z)−n=(1+z)n1=∑k=0∞(−1)k(kn+k−1)zk
- (在2.的基础上,令n=1) (1+z)−n=(1+z)n1=∑k=0∞(−1)kzk
- (在3.的基础上,令z=−z) (1−z)−n=(1−z)n1=∑k=0∞zk
- (在1.的基础上,令α=21) (1+z)21=(1+z)=∑k=0∞(k21)zk=1+∑k=1∞k!21(21−1)...(21−k+1)zk=1+∑k=1∞2kk!(−1)k−1(2k−3)!!zk=1+∑k=1∞2k2k−1(k−1)!k!(−1)k−1(2k−2)!zk=1+∑k=1∞22k−1(−1)k−1k(k−1)!(k−1)!(2k−2)!zk=1+∑k=1∞22k−1k(−1)k−1(k−12k−2)zk
- (在1.的基础上,令z=−rz, 其中r为非零常数) 当∣−rz∣<1,即∣z∣<r1时, (1−rz)−n=∑k=0∞rkzk.
1.5 组合恒等式
恒等式1: 对于正整数n和k有:
(kn)=kn(k−1n−1)
恒等式2: 对于正整数n, 有:
k=1∑nk(kn)=2n−1n
恒等式3: 对于正整数n, 有:
k=0∑n(−1)kk(kn)=0
证明:由二项式公式微分证明:已知1.4.1 Corollary 2得:(1+x)n=∑k=0n(kn)xk, 两边对x取微分,得到n(1+x)n−1=∑k=1n(kn)kxk−1。再令x=−1即可得证。
恒等式4: 对于正整数n, 有:
k=1∑nk2(kn)=2n−2n(n+1)
证明:依然二项式公式微分证明:已知1.4.1 Corollary 2得:(1+x)n=∑k=0n(kn)xk, 两边对x取微分,得到n(1+x)n−1=∑k=1n(kn)kxk−1。再将两边乘以x再求微分(因为要凑出来k2而不要k(k−1)),得n(1+x)n−2(nx+1)=∑k=0n(kn)k2xk−1, 再令x=1即可得证。
恒等式5: 对于正整数n, 有:
k=1∑n(−1)k−1(kn)k2=0
证明同恒等式4,只需要最后一步令x=−1即可得证。
恒等式6: 对于正整数n, 有:
k=0∑nk+11(kn)=n+12n+1−1
证明:与恒等式4,5不同,这一条为凑出k+11要采用积分的方式,两边同时对x做0-1定积分,得∫01(1+x)ndx=∑k=0n(kn)∫01xkdx, n+1(1+x)n+101=∑k=0n(kn)k+1xk+101, 代入得证。
恒等式7:(Vandermonde恒等式)对于正整数n,m和p,p≤min{m,n}有
k=0∑n(kn)(p−km)=(pm+n)
证明:因为有(1+x)m=∑k=0m(km)xk,(1+x)n=∑k=0n(kn)xk,(1+x)m+n=∑k=0m+n(km+n)xk, 因此有[∑k=0n(kn)xk][∑r=0m(rm)xr]=∑j=0m+n(jm+n)xj, 两边都取xp的系数,即左边令k+r=p, 右边令j=p即可得证。
恒等式8: 对于正整数n,m,有:
k=0∑n(kn)(km)=(mm+n)
证明:在恒等式7的基础上令p=m即可。
恒等式9: 对于正整数n,有:
k=0∑n(kn)2=(n2n)
证明:在恒等式8的基础上令m=n即可。
恒等式10: 对于非负整数p,q,n,有:
k=0∑p(kp)(kq)(p+qn+k)=(pn)(qn)
证明:
恒等式11: 对于非负整数p,q,n,有:
k=0∑p(kp)(kq)(p+qn+p+q−k)=(pn+p)(qn+q)
恒等式12: 对于非负整数k,n,有:
i=0∑n(ki)=(k+1n+1)
证明:归纳法+Pascal公式
恒等式13: 对于所有实数α和k, 有:
j=0∑k(jα+j)=(kα+k+1)
证明:不断使用Pascal公式
证明方法归纳:
- 数学归纳法
- 利用二项式系数的公式,尤其是Pascal公式
- 比较级数展开式的系数(二项式定理&母函数)
- 积分微分
- 组合分析
第二章 容斥原理
2.1 容斥原理基本概念
容斥原理是一种用间接计算来实现直接计算的思想,多数情况是问题本身很复杂,但是求解其补集较为简单。设集合A是有限集合S的子集,则计算A中元素的个数等于S中元素的个数再减去属于S但又不属于A的元素个数, 即
∣A∣=∣S∣−∣Aˉ∣,∣Aˉ∣=∣S∣−∣A∣
推广到两个集合A1,A2∈S, 有:
∣A1∪A2∣=∣A1∣+∣A2∣=∣A1∩A2∣
∣A1ˉ∩A2ˉ∣=∣S∣−∣A1∣−∣A2∣+∣A1∩A2∣
补充:对偶律:A∪B∪…=A∩B∩…
Definition 2.1.1: 一般地,令 Ai(i=1,2,⋯,m)⊆S,且 Ai 是 S 中具有性质 pi 的元素所组成的子集合。则⋂i=1mAi是 S 中同时具有性质 p1,p2,⋯,pm 的元素子集合,⋂i=1mAi是 S 中既不具有性质 p1,又不具有性质 p2,⋯, 更不具有性质 pm 的元素的集合。于是
S 中不具有性质 p1,p2,⋯,pm 的元素个数为
∣A1∩A2∩⋯∩Am∣=∣S∣−i=1∑m∣Ai∣+i=j∑∣Ai∩Aj∣−i=j=k∑∣Ai∩Aj∩Ak∣+⋯+(−1)m∣A1∩A2∩⋯∩Am∣
式中,第二个和式取遍集合{(i,j)∣i,j=1,2,⋯,m;i=j}, 第三个和式取遍集合{(i,j,k)∣i,j,k=1,2,⋯,m;i=j=k}, 以此类推。
Corollary 2.1.1: 集合S中至少具有性质p1,p2,...,pm中的一个性质的元素个数为:
∣A1∪A2∪⋯∪Am∣=∑∣Ai∣−∑∣Ai∩Aj∣+∑∣Ai∩Aj∩Ak∣−...+(−1)m+1∣A1∩A2∩...∩Am∣
证明,∣A1∪A2∪⋯∪Am∣=∣S∣−∣A1∪A2∪⋯∪Am∣, 由对偶律得: =∣S∣−∣A1∩A2∩...∩Am∣
补充:欧拉函数ϕ(n): ⼩于n⼜和n互素的正整数的个数。
e.g. 求ϕ(n)的值
对于任何一个大于1的正整数n,都可以进行素数分解:即n=p1p2...pm. 设S={1,2,...,n}, Qi(i=1,2,...,m)表示S中能被pi整除这一性质,并令Ai为具有Qi这一性质的整数的集合。则Ai为不能被被pi整除,即与n互素的数。ϕ(n)=⋂i=1mAi
ϕ(n)=i=1⋂m∣Ai∣=∣S∣−i=1∑m∣Ai∣+i=j∑∣Ai∩Aj∣−i=j=k∑∣Ai∩Aj∩Ak∣+⋯+(−1)m∣A1∩A2∩⋯∩Am∣
代入∣S∣=n,∣Ai∣=pin(i=1,2,…,m),∣Ai∩Aj∣=pipjn(i,j=1,2,…,m; i=j),∣Ai∩Aj∩Ak∣=pipjpkn,∣A1∩A2∩⋯∩Am∣=p1p2⋯pmn化简即可。
2.2 重集的r_组合
这一节主要在探讨给定一个重集B,当其中的元素具有任意给定的重复数时,怎样利用容斥原理求B的r-组合数。
Method: 如何计算一般重集B={k1⋅a1,k2⋅a2,...,kn⋅an}的r-组合数
Step 1: 构造重集B′={∞⋅a1,∞⋅a2,...,∞⋅an}
Step 2: 计算重集B′的r-组合:Cr=F(n,r)
Step 3: 令pi代表S中至少包含ki+1个ai的性质,则B的r-组合就是S中不具有pi(i=1,2,3,...,n)的个数。
Step 4: 由容斥原理得:∣A1∩A2∩⋯∩Am∣=∣S∣−∑i=1m∣Ai∣+∑i=j∣Ai∩Aj∣−∑i=j=k∣Ai∩Aj∩Ak∣+⋯+(−1)n∣A1∩A2∩⋯∩An∣
其中∣A1∩A2∩⋯∩Ai∣=F(n,r−(k1+1)−(k2+1)−...−(ki+1))=F(n,r−(k1+k2+...+ki)−i);
2.3 错排问题
Definition 2.3.1 (错排问题的定义): 对于一个集合A={a1,a2,...,an}和集合B={1,2,...,n}. 将两个集合中的元素一一配对,保证∀ai∈A&∀j∈B,i=j. 用Dn表示错排的个数。
Theorem 2.3.1 当n≥1, 有:
Dn=n![1−1!1+2!1−3!1+⋯+(−1)nn!1]
证明:利用容斥原理+全排列
由于 e−1 可以表示成下列的无穷级数e−1=1−1!1+2!1−3!1+⋯+(−1)nn!1+⋯, 故有:
e−1=n!Dn+(−1)n+1(n+1)!1+(−1)n+2(n+2)!1+⋯,
于是有:$$\left|, e^{-1} - \frac{D_n}{n!} ,\right| < \frac{1}{(n+1)!}.$$
n→∞limn!Dn=e−1.
即:错排个数与全排列个数之比约为e−1
Theorem 2.3.2(错排数的递归形式)
Dn=(n−1)(Dn−1+Dn−2)
2.4 相对位置上有限制的排列问题
Definition 2.3.1 (相对位置上有限制的排列问题的定义): 对于给定的正整数 n,计算集合 {1,2,…,n} 的且不允许出现 12,23,34,…,(n−1)n 的全排列的个数 Qn。
Theorem 2.3.1: 对于 n≥1,有
Qn=n!−(1n−1)(n−1)!+(2n−1)(n−2)!−⋯+(−1)n−1(n−1n−1)1!.(2.9)
Theorem 2.3.2: (有限制排列与错排的关系) 当n≥2,有:
Qn=Dn+Dn−1
2.5 一般有限制的排列问题
Definition 2.5.1 在一个给定的棋盘C上放入k个无区别棋子,每一个棋子占一格,要求各个棋子不同行不同列,级这些不同的放法为rk(C).
Definition 2.5.2 (棋盘多项式) 给定棋盘C,令r0(C)=1, n为C的格子数,称
R(C)=k=0∑nrk(C)xk
为棋盘多项式。
设C1=; C2=;
C3=:
r₁(
) = 1,
r₂(
) = 0;
r₁(
) = 2,
r₂(
) = 0;
r₁(
) = 2,
r₂(
) = 1
故有: R(C1)=1+x;R(C2)=1+2x;R(C3)=1+2x+x2
Theorem 2.5.1 给定棋盘C, 指定C中的某个格子A, 令 Ci 为 C 中删除指定格 A所在的⾏与列后所剩下的棋盘, Ce 为 C 中删除指定格 A 后所剩下的棋盘,则有
rk(C)=rk−1(Ci)+rk(Ce)
R(C)=xR(Ci)+R(Ce)
Definition 2.5.3 设C1和C2是两个棋盘,若C1的所有格都不与C2的所有格同行同列,则称两个棋盘是独立的。
Theorem 2.5.2: 若棋盘C可分解为两个独立的棋盘C1和C2,则有
R(C)=R(C1)R(C2)
Definition 2.5.4 (n元有禁位排列问题) 集合{1,2,…,n}的一个全排列且满足i(i=1,2,…,n)不排在某些已知位的不同的排列方式数。
Theorem 2.5.3: n元有禁位排列数为:
n!−r1(n−1)!+r2(n−2)!−⋯+(−1)nrn
其中ri为i个棋子放入禁区棋盘的方式数。
第五章 鸽笼原理与Ramsey定理
有n只鸽子,飞进m(n>m)个鸽笼时,至少有一个鸽笼内有两只以上的鸽子 (或者还有别的名字:抽屉原理)
5.1 鸽笼原理的简单形式
Theorem 5.1.1 如果把n+1个物体放到n个盒子中去,则至少有一个盒子中放有两个或更多的物体。(反证法)
E.g. 1:在给定的n个整数a1,a2,...,an中, 存在 k 和 l,(0≤k<l≤n) 使得ak+1+ak+2+...+al能被n整除。
Proof: 分类讨论
考虑n个和式:a1,a1+a2,a1+a2+a3,...,a1+a2+...+an
- 这n个和中有一个能被n整除,结论成立
- n个和式中一个都没有能被n整除的,则必然这些和式被n除时必然有1,2,...,n−1这样的余数。有n个和式、n-1种余数,则可以构造n-1个盒子,第i个盒子里放入被n整除余数为i的。由鸽笼原理易得必然存在k,l(k<l)使得a1+a2+...+ak 和 a1+a2+...+al具有相同的余数。即:
a1+a2+...+ak=bn+r
a1+a2+...+al=cn+r
两式相减得:$$a_{k+1} + a_{k+2} + … +a_{l} = (c-b)n$$
5.2 鸽笼原理的一般形式
Theorem 5.2.1: 设qi为正整数(i=1,2,3,...,n),q≥q1+q2+...+qn−n+1, 如果把q个物体放入n个盒子中,必然存在一个i, 使得第i个盒子里至少有qi个物体。(依然用反证法)
Corollary 1. 如果把n(r−1)+1个物体放入n个盒子中,则至少存在一个盒子装有不少于r个物体。(在上面的定理中令qi=r)
Corollary 2. 对于正整数mi(i=1,2,3,...,n), 如果 $$\frac{\sum_{i=1}^{n}m_i}{n} \gt r - 1$$
则至少存在一个i, 使得mi≥r (反证法:如果对于所有的i, 都有mi<r…)
5.3 Ramsey 定理
Theorem 5.3.1: 在6个人中,一定有三个人相识,或者三个人不相识。
换一种说法:如果你画出任意 6 个点,并把每条边涂成实线或虚线,总能找到一个三角形,它要么全实线,要么全虚线。
证明:
- 考虑这些人中的一个人(称为p)
- 剩余人可以分成两个集合:1️⃣.
F=与p相识的人的集合;和2️⃣. S=与p不相识的人的集合.
- 由鸽笼原理得,这两个集合必定有一个集合包括至少3个人,分类讨论:如果F包含三个人,或者都不认识对方,或者有两人相识。可见,两种情况都使得定理成立。
- 如果S包含三个人,则这三人或者都不认识对方,或者有两人不相识(注意,这里不用考虑都认识、两个人都相识的情况,因为只需要找到一种可能就行)。可见,这两种情况都能让定理成立,证毕。
Definition 5.3.1(Ramsey数): 设 a,b 为正整数,令R(a,b)表示保证有a个人彼此相识或者有b个人彼此不相识所需要的最少人群人数。这个R(a,b)就是Ramsey数。
Theorem 5.3.2: Ramsey数的相关性质
- R(a,b)=R(b,a)
- R(a,2)=a
- 当a,b≥2, R(a,b)是一个有限数,有
R(a,b)≤R(a−1,b)+R(a,b−1)
- 当R(a−1,b) 和 R(a,b−1)都是偶数时,有
R(a,b)≤R(a−1,b)+R(a,b−1)−1
- R(3,3)=6;R(3,4)=R(4,3)=9;R(3,5)=R(5,3)=14
Definition 5.3.2(另一种Ramsey数): 设用r种不同的颜色(c1,c2,...,cr)把一个完全n角形的边任意着色,令R(a,b)表示保证出现下列情形的数:
用c1着色的一个完全a1角形;用c2着色的一个完全a2角形;… 用cr着色的一个完全ar角形;称R(a1,a2,...,ar)为Ramsey数。
Theorem 5.3.3: Ramsey数的相关性质拓展
- 对于所有大于1的整数a1,a2,a3, R(a1,a2,a3)是存在的。
- 对于任意正整数m和a1,a2,...,am≥2, R(a1,a2,...,am)是存在的。
- 对于任意正整数r和a1,a2,...,am≥r, R(a1,a2,...,ar)是存在的。
第三章 母函数(发生函数/生成函数)
3.1 普通母函数
Def 3.1.1: 给定一个无穷序列(a1,a2,...,an,...) (简记为{an}), 称函数 $$f(x)=a_0 + a_1 x + a_2 x^2 + \dots + a_n x^n + \dots = \sum_{i=0}^{\infty} a_i x^i$$ 为序列{an}的普通母函数。
说明:变量x只是一种形式变元;普通母函数是一个无穷级数,没有必要去讨论它的收敛性, 只是序列的一种表达形式。换言之,序列与普通母函数一一对应。
普通母函数特别适用于包含组合数的序列,这是由于它具有牛顿二项式定理的形式。
Def 3.1.2: 给定一个无穷序列{an}, 称函数
fe(x)=a0+a11!x+a22!x2+⋯+ann!xn+⋯=i=0∑∞aii!xi
为序列{an}的指数母函数。
Thr 3.1.1: 设f(x),fe(x)分别是序列{an}的普通母函数和指数母函数,则有 $$f(x) = \int_{0}^{\infty} e^{-s}f_e(sx)ds.$$
3.2 母函数的基本运算
Def 3.2.1 (普通母函数的加法、乘法运算): 设A(x),B(x),C(x)分别是序列{an},{bn},{cn}的普通母函数,则有 $$C(x) = A(x) + B(x),$$ 当且仅当ci=ai+bi(i=0,1,2,...); $$C(x) = A(x)B(x);$$ 当且仅当ci=∑k=0iakbi−k.
Corollary:
- 若bk=∑i=0kai, 则B(x)=1−xA(x).→∑i=0∞(1+i)xi=(1−x)21,∑i=0∞21(i+1)(i+2)xi=(1−x)31
- 若bk={0,ak−l,k<l,k≥l., 则B(x)=xlA(x)
- 若bk=ak+l, 则B(x)=xlA(x)−∑k=0l−1akxk.
- 若bk=ak+ak+1+...=∑i=k∞ai, 则B(x)=1−xA(1)−xA(x)
- 若bk=kak, 则B(x)=xA(x)
- 若bk=1+kak, 则B(x)=x1∫0xA(x)dx
Def 3.2.2 (指数母函数的加法、乘法运算): 设A(x),B(x),C(x)分别是序列{an},{bn},{cn}的指数母函数,则有
C(x)=A(x)+B(x)
当且仅当ci=ai+bi(i=0,1,2,...);
C(x)=A(x)B(x);
当且仅当ci=∑k=0i(ki)akbi−k.
3.3 母函数在排列、组合中的应用 (这部分多看例题)
情形1: 考虑有a,b,c三种不同的物体,从中任意选取一个象征性记为a+b+c, 从中任意选出两个记为ab+bc+ca, 从中任意选取三个记为abc, 于是有多项式(1+ax)(1+bx)(1+cx)=1+(a+b+c)x+(ab+bc+ca)x2+abcx3. x的幂指数就表示被选取的物体的个数,而对应的系数则表明了所有可能的选取方法. 从n个不同的物体中选其r个物体,其方法数为(1+x)n多项式(即普通母函数)中xr的系数(rn).
情形2: 从n个不同的物体中选取r个物体的排列数恰好是指数母函数中r!xr的系数。
3.4 整数的拆分与Ferrers图
一个整数的拆分是把整数分拆为若干个正整数部分。而这些部分的次序是无关紧要的,等价于把n个无区别的球分放在一些无区别的盒子中的一种方法。
Thr 3.4.1: 设a,b,c是大于0的正整数,则
(1−xa)(1−xb)(1−xc)…1
的级数展开式中xn的系数等于把正整数n拆成a,b,c,...的和的总方法数(即正整数n的拆分数P(n))
Corollary:
用Pk(n)表示n拆分成1,2,…,k的允许重复的方法数. Po(n)表示n拆分成奇整数的方法数. Pd(n)表示n拆分成不同的整数的方法
数. Pt(n)表示n拆分成2的不同幂(即1,2,4,8,…)的方法数:
- Pk(n)的普通母函数是(1−x)(1−x2)...(1−xk)1
- Po(n)的普通母函数是(1−x)(1−x3)(1−x5)...1
Thr 3.4.2: 设a,b,c均大于零,则(1+xa)(1+xb)(1+xc)的级数展开式中xn的系数代表把n拆分成a,b,c,…的和,且a,b,c,…最多只出现一次的方法数。
Corollary:
- Pd(n)的普通母函数是(1+x)(1+x2)(1+x3)(1+x4)...
- Pt(n)的普通母函数是(1+x)(1+x2)(1+x4)(1+x8)...
Thr 3.4.3: 对于正整数n, 有$$P_o(n) = P_d(n)$$即把n拆分成奇整数的和的方式数等于把n拆分成不相同的整数的和的方式数。
Thr 3.4.4: 对于正整数n, 有$$P_t(n) = 1$$即任何正整数都可唯一地用一个二进制数来表示,而一个二进制数又可唯一地表成2的幂的和。
Thr 3.4.5: 对于正整数n, 有$$P(n) \lt e^{3 \sqrt{n}}$$进一步改进,有如下近似计算:$$P(n) \approx \frac{1}{4 \sqrt{3}n} e^{\pi \sqrt{\frac{2}{3}}\sqrt{n}}$$
Def 3.4.1: Ferrers图:
n的一个拆分对应唯一的一个Ferrers图,反过来,一个Ferrers图又对应一个n的唯一拆分。
Thr 3,4,6: 正整数n拆分成m项的和的方式数等于n拆分成最大数为m的方式数.
Thr 3.4.7 正整数n拆分成最多不超过m个项的和的方式数等于n拆分成最大的数不超过m的方式数。
3.5 母函数在组合恒等式中的应用 (这一部分以题为主)
第四章 递归关系
4.1 递归关系的建立
Def 4.1.1 递归关系的定义:设(a0,a1,...,ar,...)是一个序列,把该序列中的ar和它前面的几个ai(0≤i<r)关联起来的方程称做一个递归关系.
Hanoi塔的递归描述:n个大小不一的圆盘依半径的大小,从下而上的套在柱子A上。现要求将所有的圆盘从柱子A上全部转移到柱子C上,每次只允许从一根柱子上转移一个圆盘到另一根柱子上,且在转移过程中不允许出现大圆盘放在小圆盘上。试问要转移多少次才能将柱子A上的n个圆盘全部转移到柱子C上去?
ana0=2an−1+1,n≥2;=1
an=2n−1
Fibonacci序列的递归描述:
FnF0=Fn−1+Fn−2,n≥2;=F1=1
相关性质:
Corollary:
- ∑i=0nFi=Fn+2−1
- ∑i=0nF2i−1=F2n−1
- ∑i=0nFi2=FnFn+1
- Fn+1Fn−1−Fn2=(−1)n+1
4.2 常系数线性齐次递归关系
Def 4.2.1: 序列(a0,a1,...,ar,...)中相邻k+1的关系如果为:
an=b1an−1+b2an−2+⋯+bkan−k,n≥k,bi=0
则该关系称为序列(a0,a1,...,ar,...)的K阶常系数线性齐次递归关系。
Def 4.2.2: 与Def 4.2.1中的递归关系相联系的方程:
xk−b1xk−1−b2xk−2−⋯−bk=0
叫做上述递归关系式的特征方程,其根称为特征根。
特征根的两种情况:1️⃣无重根;2️⃣有重根。
1️⃣无重根
Thr 4.2.1: 若q=0, an=qn是递归关系式an=b1an−1+b2an−2+⋯+bkan−k的解,当且仅当q是其特征方程的根。
Def 4.2.3: a0=h0,a1=h1,…,ak−1=hk−1为递归关系式an=b1an−1+b2an−2+⋯+bkan−k的初始条件。
Thr 4.2.2: 若q1,q2,...,qk是递归关系式an=b1an−1+b2an−2+⋯+bkan−k的特征根,c1,c2,…,ck为常数,则
an=c1q1n+c2q2n+⋯+ckqkn
是递归关系式的解。
Def 4.2.4: 若对于递归关系式an=b1an−1+b2an−2+⋯+bkan−k的任意一个解an,都存在一组常数c1,c2,...,cn, 使得an可以表示为an=c1q1n+c2q2n+⋯+ckqkn的形式,则an=c1q1n+c2q2n+⋯+ckqkn是该递归式的通解。
Def 4.2.5: 复数特征根的通解形式:
设x1=δ+iω,x2=δ−iω为多项式的一对复根,则通解为:
an=A1(x1)n+A2(x2)n=A1(δ+iω)n+A2(δ−iω)n=c1ρncosnθ+c2ρnsinnθ
ρc1=δ2+ω2,θ=tan−1(ω/δ)=A1+A2,c2=i(A1−A2)
2️⃣有重根
Thr 4.2.3: 若序列的递归关系的特征方程式xk−b1xk−1−b2xk−2−⋯−bk=0有一个m重根q, 则qn,nqn,...,nm−1qn都是递归关系式的解。
Thr 4.2.4: 设q1,q2,...,qt分别是特征方程的相异的m1,m2,...,mt重根,且∑i=0tmi=k, 则
an=i=1∑tj=1∑micijnj−1qin
是递归关系式的通解。
4.3 常系数线性非齐次递归关系
Def 4.3.1: 序列(a0,a1,...,ar,...)中相邻k+1的关系如果为:
an=b1an−1+b2an−2+⋯+bkan−k+f(n),n≥k,bi=0,f(n)=0
则该关系称为序列(a0,a1,...,ar,...)的K阶常系数线性非齐次递归关系。
Thr 4.3.1: 若anˉ是一个K阶常系数线性非齐次递归关系的特解,而an∗=∑i=1kciqin 或 =∑i=1t∑j=1micijnj−1qin是与之对应的齐次递归关系(令f(x)=0)的通解,则an=anˉ+an∗ 为这个非齐次递归关系的通解
一些特殊的非齐次递归关系:
f(n)是n的t次多项式
- 1不是特征根:
特解:anˉ=A0nt+A1nt−1+⋯+At, A□为待定常数。
- 1是m重特征根(m≥1):
特解:anˉ=(A0nt+A1nt−1+⋯+At)nm, A□为待定常数。
f(n)是βn形式
- β不是特征根:
特解:anˉ=Aβn, A为待定常数。
- β是m重特征根(m≥1):
特解:anˉ=Anmβn, A为待定常数。
4.4 迭代法与归纳法
适用于k较大时,k阶线性齐次递归关系的特征方程的次数较高的情况。
迭代法:反复应用递归关系式进行迭代
归纳法:先⽤初值条件求出前⼏项,并观察其规律;设n=k时,结论成立。则当n=k+1时,有。。。
4.5 母函数在递归关系中的应用
用于求解非线性递归关系和非常系数递归关系。主要步骤如下:
- 用f(x)表示序列 (a1,a2,...,an) 的普通母函数,即f(x)=∑n=0∞anxn
- 利用递归关系an的表达式与上述普通母函数的关系,将母函数表达式化为关于f(x)的方程(大多数情况是将递归关系an的表达式代入母函数右端),即g(f(x))=0
- 解出f(x)
- 将f(x)的表达式展开成幂级数。即可求得an的初等表达式。
Catalan数:满足如下序列递归关系:
⎩⎨⎧an=k=1∑n−1akan−k,a1=1,a2=1n⩾2
an=n1(n−12n−2)
4.6 Stirling数
Def 4.6.1 第一类Stirling数: 令
[x]n=x(x−1)…(x−n+1)
如果 [x]n=∑k=0nS1(n,k)xk, 则称S1(n,k)为第一类Stirling数。当n<k时,S1(n,k)=0。
Thr 4.6.1 第一类Stirling数满足如下递归关系:
{s1(n+1,k)=s1(n,k−1)−ns1(n,k),s1(0,0)=1,s1(n,0)=0,n⩾0,k>0n>0
Def 4.6.2 第二类Stirling数: 如果 xn=∑k=0nS2(n,k)[x]k,则称S2(n,k)为第二类Stirling数。当n<k时,S2(n,k)=0
Thr 4.6.2 第二类Stirling数满足如下递归关系:
{s2(n+1,k)=s2(n,k−1)+ks2(n,k),s2(0,0)=1,s1(n,0)=0,n⩾0,k>0n>0
Thr 4.6.3 第二类Stirling数涉及集合的划分。第二类Stirling数S2(n,k)就是n个元素的集合划分为k个不相交的非空子集的方式数。
Thr 4.6.3 第二类Stirling数满足如下性质:
- S2(n,n)=1, S2(n,k)=0,n<k or k=0<n
- S2(n,2)=2n−1−1
- S2(n,n−1)=(2n)
第二类Stirling数与下面定义的Bell数的关系:
Def 4.6.3 Bell数:Bn=∑k=0ns2(n,k), 显然B0=1
S2(n,k)就是n个元素的集合划分为k个不相交的非空子集合的方式数。于是Bell数Bn就是n个元素的集合划分为不相交的非空子集的方式数。
Thr 4.6.4 Bell数满足如下递归关系:
Bn+1=k=0∑n(kn)Bk