主要来源于教材《组合数学及其应用》
鸽笼原理
定理5.1
如果把(n+1)个物体加入到 (n) 个盒子中,则至少有一个盒子放有两个或者更多的物体。
定理5.2
设 (q_i) 是正整数((i=1,2,···,n)),(q geq q_1 + q_2 + ··· + q_n - n + 1),如果把 (q) 个物体放入 (n) 个盒子中,则必存在一个 (i) ,使得第 (i) 个盒子至少有 (q_i) 个物体。
-
推论1: 如果把(n(r-1)+1)个物体放入 (n) 个盒子中,则至少存在一个盒子放有不少于 (r) 个物体。
-
推论2:对于正整数(m_i(i=1,2,···,n)),如果
[frac{sum_{i=1}^nm_i}{n} > r-1 ]则至少存在一个 (i),使得 (m_i geq r)。
(Ramsey)数
定义5.1
设 (a),(b) 为正整数,令 (R(a,b)) 是保证有 (a) 个人彼此相识或者有 (b) 个人彼此不相识所需要的最少人数,则称 (R(a,b))为(Ramsey)数。
定理5.8
当 (a,bgeq 2) 时,(R(a,b)) 是一个有限数,并且有 (R(a,b) leq R(a-1,b) + R(a,b-1))。
(Stirling)数
-
第一类(stirling)数
令 ([x]_n = x*(x-1)*···*(x-n+1))
定义4.8
若 ([x]_n = sum_{k=0}^nS_1(n,k)x^k),则称(S_1(n,k))为第一类(stirling)数。显然,(S_1(n,k))就是多项式([x]_n)的系数。
定理4.7
第一类(stirling)数满足如下递归关系式:
[egin{cases} S_1(n+1,k)=S_1(n,k-1)-nS_1(n,k) & ngeq 0,k>0 \ S_1(0,0) = 1,S_1(n,0)=0 end{cases} ]证明:
[[x]_{n+1} = sum_{k=0}^{n+1}S_1(n+1,k)x^k ]又
[[x]_{n+1} = x*(x-1)*···*(x-n) = [x]_n*(x-n) =sum_{k=0}^nS_1(n,k)x^{k+1} - nsum_{k=0}^nS_1(n,k)x^k ]故
[sum_{k=0}^{n+1}S_1(n+1,k)x^k = sum_{k=0}^nS_1(n,k)x^{k+1} - nsum_{k=0}^nS_1(n,k)x^k ]比较上式两端 (x^k) 的系数得:
[S_1(n+1,k) = S_1(n,k-1) -nS_1(n,k) ]定理4.8
第一类(Stirling)数的其它定义:若([x]_n = sum_{k=0}^n(-1)^{n-k}S'(n,k)x^k),则(S'(n,k))为第一类(Stirling)数。且有递归关系式
[egin{cases} S'(n+1,k) = S'(n,k-1) + nS'(n,k) & n geq 1, k>0 \ S'(0,0) = 0,S'(n,0)=0 & n>0 end{cases} ](S'(n,k))就是 (n) 个元素排成 (k) 个非空循环排列的方法数。
证明:
假设(A(n,k))表示把 (n) 个元素排成 (k) 个非空循环排列的方法数。于是有(A(n,n)=1(n geq 0)),因为 (n) 个元素排成 (n) 个非空循环排列,则每个非空循环排列只有一个元素,故方法唯一。窝们还有(A(n,0)=0(n geq 1)),因为如果至少有一个元素,那么任何安排都至少包含一个非空循环排列。因此,(A(n,k))和(S'(n,k))满足相同的初始条件。假设这 (n) 个元素分别为(a_1,a_2,···,a_n)。将这些元素排成 (k) 个非空循环排列,可分为互不相容得两种情况:
- 设 (a_n) 单独成一个循环排列,于是把(a_1,a_2,···,a_{n-1})排成(k-1)个非空循环排列的方法数为(A(n-1,k-1))。
- 如果 (a_n) 不单独成为一个循环排列,则 (a_n) 至少和另一个元素 (a_i) 在一个循环排列中。首先将 (a_1,a_2,···,a_{n-1})排成 (k) 个非空循环排列,然后再把 (a_n) 放在(a_1,a_2,···,a_{n-1})的左边,共有(A(n-1,k)*(n-1))种方式。
根据加法原则,可知(a_1,a_2,···,a_n)排成 (k) 个非空循环的排列方法数为(A(n-1,k-1) + (n-1)A(n-1,k)),因此有
[A(n,k) = A(n-1,k-1) + (n-1)A(n-1,k) ]既
[A(n+1,k) = A(n,k-1) + nA(n,k) ]显然,(A(n,k))满足(S'(n,k))的递归关系式且初始条件相同,故(S'(n,k) = A(n,k))。
-
第二类(Stirling)数
定义4.9
若 (x^n = sum_{k=0}^nS_2(n,k)[x]_n),则称(S_2(n,k))为第二类(Stirling)数。
第二类(Stirling)数向窝们展示了如何用([x]_0,[x]_1,···,[x]_n)写出 (x^n),而第一类(Stirling)数告诉窝们如何用(x^0,x^1,···,x^n)写出([x]_n)。
定理4.8
第二类(stirling)数满足如下递归关系式:
[egin{cases} S_2(n+1,k) = S_2(n,k-1) + kS_2(n,k) & ngeq 0,k>0 \ S_2(0,0)=1,S_2(n,0)=0 end{cases} ]证明:
[x^{n+1} = sum_{k=0}^{n+1}S_2(n+1,k)[x]_k ]又
[x^{n+1} = x^n * x = sum_{k=0}^nS_2(n,k)[x]_k(x-k+k)=sum_{k=0}^nS_2(n,k)([x]_{k+1} + k[x]_k) ]既
[x^{n+1} = sum_{k=0}^{n+1}S_2(n+1,k)[x]_k = sum_{k=0}^nS_2(n,k)[x]_{k+1} + ksum_{k=0}^nS_2(n,k)[x]_k ]比较上式两端的([x]_{k})的系数得:
[S_2(n+1,k) = S_2(n,k-1) + kS_2(n,k) ]定理4.10
第二类(Stirling)数(S_2(n,k))就是 (n) 个元素得集合划分成 (k) 个不相交得非空子集的方式数。
证明:
设(A(n,k))是 (n) 个元素划分成 (k) 个不相交的非空子集的方式数,下面证明(A(n,k))满足上述递归关系式。
给定一个(n+1)元集合({a_1,a_2,···,a_{n+1}}),将这个(n+1)元集合划分成 (k) 个不相交的非空子集,可分为互不相容的两种情况:
- 设({a_{n+1}})是 (k) 个子集合中的一个子集,于是把({a_1,a_2,···,a_n})划分为(k-1)个子集有(A(n,k-1))种划分方式。
- 如果({a_{n+1}})不是 (k) 个子集合中的一个,则(a_{n+1})必与其它元素构成一个子集。首先把({a_1,a_2,···,a_n})划分成 (k) 个子集,这共有(A(n,k))种方式。然后再把(a_{n+1})插入到这 (k) 个子集中的一个,共有 (k) 种可能。因此划分方式数共有(kA(n,k))种。
根据加法原则,可知({a_1,a_2,···,a_n,a_{n+1}})划分为 (k) 个子集的方式数一共有:(A(n,k-1) + kA(n,k)) 种。
因此有
[A(n+1,k) = A(n,k-1) + kA(n,k) ]显然,(A(n,k))满足第二类(Stirling)数的递归关系式,故(A(n,k) = S_2(n,k)),定理得证。
定理4.11
设 (m,n) 均为正整数且(m leq n),(S_2(n,m) = frac{1}{m!}sum_{i=0}^m(-1)^iC_m^i(m-i)^n)。
证明:
考虑这样一个问题,把 (n) 个不同的球放进 (m) 个不同编号的盒子中,使得没有一个盒子为空的方式数。首先,不考虑盒子的编号,也就是说假设这 (m) 个盒子是相同的。这样以来,把 (n) 个不同的球放进 (m) 个相同的盒子而且无一盒为空 等价于 把一个 (n) 元集合({a_1,a_2,···,a_n})划分为 (m) 个不相交的非空子集。由定理4.9可知,这共有(S_2(n,m))种方式。其次再对盒子编号,易知,(m) 个盒子共有 (m!) 种编号方式,于是由乘法规则可得:共有
[m!S_2(n,m) ]种方式把 (n) 个不同的球放进 (m) 个不同的盒子中,且无一盒为空。实际上窝们也可以用容斥原理解决这个问题。令 (S) 表示把 (n) 个不同的球任意放进 (m) 个不同的盒子中的所有放法所组成的集合,显然有(|S| = m^n)。令 (p_i(i=1,2,···,m)) 表示第 (i) 个盒子为空这一性质,(A_i(i=1,2,···,m)) 表示 (S) 中具有性质 (p_i) 的元素所组成的集合,则 (overline{A_1} cap overline{A_2} cap ··· cap overline{A_m}) 表示没有一个盒子为空的元素所组成的集合。由容斥原理可知,
[|overline{A_1} cap overline{A_2} cap ··· cap overline{A_m}| = |S| - sum_{i=1}^m|A_i| + sum_{i eq j}|A_i cap A_j| - sum_{i eq j eq k}|A_i cap A_j cap A_k| + ··· +(-1)^m|A_1 cap A_2 cap ··· cap A_m| ]一般的,对于 (m) 个盒子让 (k) 个盒子为空的放球方法数为 (C_m^k(m-k)^n),故
[|overline{A_1} cap overline{A_2} cap ··· cap overline{A_m}| = m^n - C_m^1(m-1)^n + C_m^2(m-2)^n - C_m^3(m-3)^n + ··· + (-1)^mC_m^m(m-m)^n \ = sum_{i=0}^m(-1)^iC_m^i(m-i)^n ]所以
[m!S_2(n,m) = sum_{i=0}^m(-1)^iC_m^i(m-i)^n ]既
[S_2(n,m) = frac{1}{m!}sum_{i=0}^m(-1)^iC_m^i(m-i)^n ]例题
设 (m,n) 均为正整数,证明 (sum_{i=1}^mi^n = sum_{k=0}^nk! * S_2(n,k)*C_{m+1}^{k+1})
证明:
使用下题的结论,有
[egin{align} sum_{i=1}^mi^n =& sum_{i=1}^m(sum_{k=1}^iC_i^k*S_2(n,k)*k!) \ =&sum_{i=1}^m(sum_{k=1}^nC_i^k*S_2(n,k)*k!) \ =&sum_{k=1}^n(sum_{i=1}^mC_i^k*S_2(n,k)*k!) \ =&sum_{k=1}^nk!*S_2(n,k)*(sum_{i=1}^mC_i^k) end{align} ]对于正整数 (n) 和 (k),有
[sum_{i=1}^mC_i^k = C_{m+1}^{k+1} ]可根据归纳法证明上述等式,又(S_2(n,0)=0),所以
[sum_{i=1}^mi^n = sum_{k=1}^nk!*S_2(n,k)*C_{m+1}^{k+1} = sum_{k=0}^nk!*S_2(n,k)*C_{m+1}^{k+1} ]例题
设 (m,n) 均为正整数且(m leq n),证明 (m^n = sum_{k=1}^mC_m^k*S_2(n,k)*k!)
证明:
注意到这样一个问题,(n) 个 不同的球放入到 (m) 个不同的盒子中且允许有空盒的方法数为 (m^n) 种。由定理4.10知,(n) 个不同的球放入到 (m) 个不同的盒子中且无一盒为空的方法数为 (m!S_2(n,m))。而从 (m) 个盒子中选取 (k) 个盒子的方法数为(C_m^k),故枚举所有的放法中可能出现的非空盒数(k(k=1,2,···,m)),根据加法原则,有:
[m^n = C_m^1*S_2(n,1) + C_m^2*S_2(n,2)*2! + ··· + C_m^m*S_2(n,m)*m! = sum_{k=1}^mC_m^k*S_2(n,k)*k! ]
(Bell)数
定义4.10
若 (B_n = sum_{k=0}^nS_2(n,k)),则称 (B_n) 为(Bell)数。显然(B_0 = 1)。
定理4.12
(Bell)数(B_n)为 (n) 个元素的集合划分为不相交的非空子集的方式数,且满足如下递归关系式:
证明:
给定一个(n+1)元集合({a_1,a_2,···,a_n,a_{n+1}}),将其划分为不相交的非空子集。首先,假设第 (n+1) 个元素 (a_{n+1}) 所在子集的元素个数有 (k+1(k=1,2,···,n)) 个,既从({a_1,a_2,···,a_n})中挑选 (k) 个元素和 (a_{n+1}) 组成一个子集。显然,挑选的方式数有(C_n^k)种,而剩下的 (n-k) 个元素划分为不相交的非空子集的方式数为 (B_{n-k}),故
又(C_n^k = C_n^{n-k}),所以
和定理4.9用到了相似的证明思路。