主要来源于教材《组合数学及其应用》
鸽笼原理
定理5.1
如果把 n + 1 n+1 n+1个物体加入到 n n n 个盒子中,则至少有一个盒子放有两个或者更多的物体。
定理5.2
设 q i q_i qi 是正整数 ( i = 1 , 2 , ⋅ ⋅ ⋅ , n ) (i=1,2,···,n) (i=1,2,⋅⋅⋅,n), q ≥ q 1 + q 2 + ⋅ ⋅ ⋅ + q n − n + 1 q \geq q_1 + q_2 + ··· + q_n - n + 1 q≥q1+q2+⋅⋅⋅+qn−n+1,如果把 q q q 个物体放入 n n n 个盒子中,则必存在一个 i i i ,使得第 i i i 个盒子至少有 q i q_i qi 个物体。
-
推论1: 如果把 n ( r − 1 ) + 1 n(r-1)+1 n(r−1)+1个物体放入 n n n 个盒子中,则至少存在一个盒子放有不少于 r r r 个物体。
-
推论2:对于正整数 m i ( i = 1 , 2 , ⋅ ⋅ ⋅ , n ) m_i(i=1,2,···,n) mi(i=1,2,⋅⋅⋅,n),如果
∑ i = 1 n m i n > r − 1 \frac{\sum_{i=1}^nm_i}{n} > r-1 n∑i=1nmi>r−1
则至少存在一个 i i i,使得 m i ≥ r m_i \geq r mi≥r。
R a m s e y Ramsey Ramsey数
定义5.1
设 a a a, b b b 为正整数,令 R ( a , b ) R(a,b) R(a,b) 是保证有 a a a 个人彼此相识或者有 b b b 个人彼此不相识所需要的最少人数,则称 R ( a , b ) R(a,b) R(a,b)为 R a m s e y Ramsey Ramsey数。
定理5.8
当 a , b ≥ 2 a,b\geq 2 a,b≥2 时, R ( a , b ) R(a,b) R(a,b) 是一个有限数,并且有 R ( a , b ) ≤ R ( a − 1 , b ) + R ( a , b − 1 ) R(a,b) \leq R(a-1,b) + R(a,b-1) R(a,b)≤R(a−1,b)+R(a,b−1)。
S t i r l i n g Stirling Stirling数
-
第一类 s t i r l i n g stirling stirling数
令 [ x ] n = x ∗ ( x − 1 ) ∗ ⋅ ⋅ ⋅ ∗ ( x − n + 1 ) [x]_n = x*(x-1)*···*(x-n+1) [x]n=x∗(x−1)∗⋅⋅⋅∗(x−n+1)
定义4.8
若 [ x ] n = ∑ k = 0 n S 1 ( n , k ) x k [x]_n = \sum_{k=0}^nS_1(n,k)x^k [x]n=∑k=0nS1(n,k)xk,则称 S 1 ( n , k ) S_1(n,k) S1(n,k)为第一类 s t i r l i n g stirling stirling数。显然, S 1 ( n , k ) S_1(n,k) S1(n,k)就是多项式 [ x ] n [x]_n [x]n的系数。
定理4.7
第一类 s t i r l i n g stirling stirling数满足如下递归关系式:
{ S 1 ( n + 1 , k ) = S 1 ( n , k − 1 ) − n S 1 ( n , k ) n ≥ 0 , k > 0 S 1 ( 0 , 0 ) = 1 , S 1 ( n , 0 ) = 0 \begin{cases} S_1(n+1,k)=S_1(n,k-1)-nS_1(n,k) & n\geq 0,k>0 \\ S_1(0,0) = 1,S_1(n,0)=0 \end{cases} {S1(n+1,k)=S1(n,k−1)−nS1(n,k)S1(0,0)=1,S1(n,0)=0n≥0,k>0
证明:
[ x ] n + 1 = ∑ k = 0 n + 1 S 1 ( n + 1 , k ) x k [x]_{n+1} = \sum_{k=0}^{n+1}S_1(n+1,k)x^k [x]n+1=k=0∑n+1S1(n+1,k)xk
又
[ x ] n + 1 = x ∗ ( x − 1 ) ∗ ⋅ ⋅ ⋅ ∗ ( x − n ) = [ x ] n ∗ ( x − n ) = ∑ k = 0 n S 1 ( n , k ) x k + 1 − n ∑ k = 0 n S 1 ( n , 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} - n\sum_{k=0}^nS_1(n,k)x^k [x]n+1=x∗(x−1)∗⋅⋅⋅∗(x−n)=[x]n∗(x−n)=k=0∑nS1(n,k)xk+1−nk=0∑nS1(n,k)xk
故
∑ k = 0 n + 1 S 1 ( n + 1 , k ) x k = ∑ k = 0 n S 1 ( n , k ) x k + 1 − n ∑ k = 0 n S 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} - n\sum_{k=0}^nS_1(n,k)x^k k=0∑n+1S1(n+1,k)xk=k=0∑nS1(n,k)xk+1−nk=0∑nS1(n,k)xk
比较上式两端 x k x^k xk 的系数得:
S 1 ( n + 1 , k ) = S 1 ( n , k − 1 ) − n S 1 ( n , k ) S_1(n+1,k) = S_1(n,k-1) -nS_1(n,k) S1(n+1,k)=S1(n,k−1)−nS1(n,k) -
第二类 S t i r l i n g Stirling Stirling数
定义4.9
若 x n = ∑ k = 0 n S 2 ( n , k ) [ x ] n x^n = \sum_{k=0}^nS_2(n,k)[x]_n xn=∑k=0nS2(n,k)[x]n,则称 S 2 ( n , k ) S_2(n,k) S2(n,k)为第二类 S t i r l i n g Stirling Stirling数。
定理4.8
第二类 s t i r l i n g stirling stirling数满足如下递归关系式:
{ S 2 ( n + 1 , k ) = S 2 ( n , k − 1 ) + k S 2 ( n , k ) n ≥ 0 , k > 0 S 2 ( 0 , 0 ) = 1 , S 2 ( n , 0 ) = 0 \begin{cases} S_2(n+1,k) = S_2(n,k-1) + kS_2(n,k) & n\geq 0,k>0 \\ S_2(0,0)=1,S_2(n,0)=0 \end{cases} {S2(n+1,k)=S2(n,k−1)+kS2(n,k)S2(0,0)=1,S2(n,0)=0n≥0,k>0
证明:
x n + 1 = ∑ k = 0 n + 1 S 2 ( n + 1 , k ) [ x ] k x^{n+1} = \sum_{k=0}^{n+1}S_2(n+1,k)[x]_k xn+1=k=0∑n+1S2(n+1,k)[x]k
又
x n + 1 = x n ∗ x = ∑ k = 0 n S 2 ( n , k ) [ x ] k ( x − k + k ) = ∑ k = 0 n S 2 ( n , k ) ( [ x ] k + 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) xn+1=xn∗x=k=0∑nS2(n,k)[x]k(x−k+k)=k=0∑nS2(n,k)([x]k+1+k[x]k)
既
x n + 1 = ∑ k = 0 n + 1 S 2 ( n + 1 , k ) [ x ] k = ∑ k = 0 n S 2 ( n , k ) [ x ] k + 1 + k ∑ k = 0 n S 2 ( n , 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} + k\sum_{k=0}^nS_2(n,k)[x]_k xn+1=k=0∑n+1S2(n+1,k)[x]k=k=0∑nS2(n,k)[x]k+1+kk=0∑nS2(n,k)[x]k
比较上式两端的 [ x ] k [x]_{k} [x]k的系数得:
S 2 ( n + 1 , k ) = S 2 ( n , k − 1 ) + k S 2 ( n , k ) S_2(n+1,k) = S_2(n,k-1) + kS_2(n,k) S2(n+1,k)=S2(n,k−1)+kS2(n,k)
定理4.9第二类 S t i r l i n g Stirling Stirling数 S 2 ( n , k ) S_2(n,k) S2(n,k)就是 n n n 个元素得集合划分成 k k k 个不相交得非空子集的方式数。
证明:
设 A ( n , k ) A(n,k) A(n,k)是 n n n 个元素划分成 k k k 个不相交的非空子集的方式数,下面证明 A ( n , k ) A(n,k) A(n,k)满足上述递归关系式。
给定一个 n + 1 n+1 n+1元集合 { a 1 , a 2 , ⋅ ⋅ ⋅ , a n + 1 } \{a_1,a_2,···,a_{n+1}\} {a1,a2,⋅⋅⋅,an+1},将这个 n + 1 n+1 n+1元集合划分成 k k k 个不相交的非空子集,可分为互不相容的两种情况。
- 设 { a n + 1 } \{a_{n+1}\} {an+1}是 k k k 个子集合中的一个子集,于是把 { a 1 , a 2 , ⋅ ⋅ ⋅ , a n } \{a_1,a_2,···,a_n\} {a1,a2,⋅⋅⋅,an}划分为 k − 1 k-1 k−1个子集有 A ( n , k − 1 ) A(n,k-1) A(n,k−1)种划分方式。
- 如果 { a n + 1 } \{a_{n+1}\} {an+1}不是 k k k 个子集合中的一个,则 a n + 1 a_{n+1} an+1必与其它元素构成一个子集。首先把 { a 1 , a 2 , ⋅ ⋅ ⋅ , a n } \{a_1,a_2,···,a_n\} {a1,a2,⋅⋅⋅,an}划分成 k k k 个子集,这共有 A ( n , k ) A(n,k) A(n,k)种方式。然后再把 a n + 1 a_{n+1} an+1插入到这 k k k 个子集中的一个,共有 k k k 种可能。因此划分方式数共有 k A ( n , k ) kA(n,k) kA(n,k)种。
根据加法原则,可知 { a 1 , a 2 , ⋅ ⋅ ⋅ , a n , a n + 1 } \{a_1,a_2,···,a_n,a_{n+1}\} {a1,a2,⋅⋅⋅,an,an+1}划分为 k k k 个子集的方式数一共有: A ( n , k − 1 ) + k A ( n , k ) A(n,k-1) + kA(n,k) A(n,k−1)+kA(n,k) 种。
因此有
A ( n + 1 , k ) = A ( n , k − 1 ) + k A ( n , k ) 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 ) A(n,k) A(n,k)满足第二类 S t i r l i n g Stirling Stirling数的递归关系式,故 A ( n , k ) = S 2 ( n , k ) A(n,k) = S_2(n,k) A(n,k)=S2(n,k),定理得证。定理4.10
设 m , n m,n m,n 均为正整数且 m ≤ n m \leq n m≤n, S 2 ( n , m ) = 1 m ! ∑ i = 0 m ( − 1 ) i C m i ( m − i ) n S_2(n,m) = \frac{1}{m!}\sum_{i=0}^m(-1)^iC_m^i(m-i)^n S2(n,m)=m!1∑i=0m(−1)iCmi(m−i)n。
证明:
考虑这样一个问题,把 n n n 个不同的球放进 m m m 个不同编号的盒子中,使得没有一个盒子为空的方式数。首先,不考虑盒子的编号,也就是说假设这 m m m 个盒子是相同的。这样以来,把 n n n 个不同的球放进 m m m 个相同的盒子而且无一盒为空 等价于 把一个 n n n 元集合 { a 1 , a 2 , ⋅ ⋅ ⋅ , a n } \{a_1,a_2,···,a_n\} {a1,a2,⋅⋅⋅,an}划分为 m m m 个不相交的非空子集。由定理4.9可知,这共有 S 2 ( n , m ) S_2(n,m) S2(n,m)种方式。其次再对盒子编号,易知, m m m 个盒子共有 m ! m! m! 种编号方式,于是由乘法规则可得:共有
m ! S 2 ( n , m ) m!S_2(n,m) m!S2(n,m)
种方式把 n n n 个不同的球放进 m m m 个不同的盒子中,且无一盒为空。实际上窝们也可以用容斥原理解决这个问题。令 S S S 表示把 n n n 个不同的球任意放进 m m m 个不同的盒子中的所有放法所组成的集合,显然有 ∣ S ∣ = m n |S| = m^n ∣S∣=mn。令 p i ( i = 1 , 2 , ⋅ ⋅ ⋅ , m ) p_i(i=1,2,···,m) pi(i=1,2,⋅⋅⋅,m) 表示第 i i i 个盒子为空这一性质, A i ( i = 1 , 2 , ⋅ ⋅ ⋅ , m ) A_i(i=1,2,···,m) Ai(i=1,2,⋅⋅⋅,m) 表示 S S S 中具有性质 p i p_i pi 的元素所组成的集合,则 A 1 ‾ ∩ A 2 ‾ ∩ ⋅ ⋅ ⋅ ∩ A m ‾ \overline{A_1} \cap \overline{A_2} \cap ··· \cap \overline{A_m} A1∩A2∩⋅⋅⋅∩Am 表示没有一个盒子为空的元素所组成的集合。由容斥原理可知,
∣ A 1 ‾ ∩ A 2 ‾ ∩ ⋅ ⋅ ⋅ ∩ A m ‾ ∣ = ∣ S ∣ − ∑ i = 1 m ∣ A i ∣ + ∑ i ≠ j ∣ A i ∩ A j ∣ − ∑ i ≠ j ≠ k ∣ A i ∩ A j ∩ A k ∣ + ⋅ ⋅ ⋅ + ( − 1 ) m ∣ A 1 ∩ A 2 ∩ ⋅ ⋅ ⋅ ∩ A m ∣ |\overline{A_1} \cap \overline{A_2} \cap ··· \cap \overline{A_m}| = |S| - \sum_{i=1}^m|A_i| + \sum_{i \neq j}|A_i \cap A_j| - \sum_{i \neq j \neq k}|A_i \cap A_j \cap A_k| + ··· +(-1)^m|A_1 \cap A_2 \cap ··· \cap A_m| ∣A1∩A2∩⋅⋅⋅∩Am∣=∣S∣−i=1∑m∣Ai∣+i=j∑∣Ai∩Aj∣−i=j=k∑∣Ai∩Aj∩Ak∣+⋅⋅⋅+(−1)m∣A1∩A2∩⋅⋅⋅∩Am∣
一般的,对于 m m m 个盒子让 k k k 个盒子为空的放球方法数为 C m k ( m − k ) n C_m^k(m-k)^n Cmk(m−k)n,故
∣ A 1 ‾ ∩ A 2 ‾ ∩ ⋅ ⋅ ⋅ ∩ A m ‾ ∣ = m n − C m 1 ( m − 1 ) n + C m 2 ( m − 2 ) n − C m 3 ( m − 3 ) n + ⋅ ⋅ ⋅ + ( − 1 ) m C m m ( m − m ) n = ∑ i = 0 m ( − 1 ) i C m i ( m − i ) 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 ∣A1∩A2∩⋅⋅⋅∩Am∣=mn−Cm1(m−1)n+Cm2(m−2)n−Cm3(m−3)n+⋅⋅⋅+(−1)mCmm(m−m)n=i=0∑m(−1)iCmi(m−i)n
所以
m ! S 2 ( n , m ) = ∑ i = 0 m ( − 1 ) i C m i ( m − i ) n m!S_2(n,m) = \sum_{i=0}^m(-1)^iC_m^i(m-i)^n m!S2(n,m)=i=0∑m(−1)iCmi(m−i)n
既
S 2 ( n , m ) = 1 m ! ∑ i = 0 m ( − 1 ) i C m i ( m − i ) n S_2(n,m) = \frac{1}{m!}\sum_{i=0}^m(-1)^iC_m^i(m-i)^n S2(n,m)=m!1i=0∑m(−1)iCmi(m−i)n
例题设 m , n m,n m,n 均为正整数且 m ≤ n m \leq n m≤n,证明 m n = ∑ k = 1 m C m k ∗ S 2 ( n , k ) ∗ k ! m^n = \sum_{k=1}^mC_m^k*S_2(n,k)*k! mn=∑k=1mCmk∗S2(n,k)∗k!
证明:
注意到这样一个问题, n n n 个 不同的球放入到 m m m 个不同的盒子中且允许有空盒的方法数为 m n m^n mn 种。由定理4.10知, n n n 个不同的球放入到 m m m 个不同的盒子中且无一盒为空的方法数为 m ! S 2 ( n , m ) m!S_2(n,m) m!S2(n,m)。而从 m m m 个盒子中选取 k k k 个盒子的方法数为 C m k C_m^k Cmk,故枚举所有的放法中可能出现的非空盒数 k ( k = 1 , 2 , ⋅ ⋅ ⋅ , m ) k(k=1,2,···,m) 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 ! = ∑ k = 1 m C m k ∗ S 2 ( n , k ) ∗ k ! 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! mn=Cm1∗S2(n,1)+Cm2∗S2(n,2)∗2!+⋅⋅⋅+Cmm∗S2(n,m)∗m!=k=1∑mCmk∗S2(n,k)∗k!
B e l l Bell Bell数
定义4.10
若 B n = ∑ k = 0 n S 2 ( n , k ) B_n = \sum_{k=0}^nS_2(n,k) Bn=∑k=0nS2(n,k),则称 B n B_n Bn 为 B e l l Bell Bell数。显然 B 0 = 1 B_0 = 1 B0=1。
定理4.12
B
e
l
l
Bell
Bell数
B
n
B_n
Bn为
n
n
n 个元素的集合划分为不相交的非空子集的方式数,且满足如下递归关系式:
B
n
+
1
=
∑
k
=
0
n
C
n
k
B
k
B_{n+1} = \sum_{k=0}^nC_n^kB_k
Bn+1=k=0∑nCnkBk
证明:
给定一个
n
+
1
n+1
n+1元集合
{
a
1
,
a
2
,
⋅
⋅
⋅
,
a
n
,
a
n
+
1
}
\{a_1,a_2,···,a_n,a_{n+1}\}
{a1,a2,⋅⋅⋅,an,an+1},将其划分为不相交的非空子集。首先,假设第
n
+
1
n+1
n+1 个元素
a
n
+
1
a_{n+1}
an+1 所在子集的元素个数有
k
+
1
(
k
=
1
,
2
,
⋅
⋅
⋅
,
n
)
k+1(k=1,2,···,n)
k+1(k=1,2,⋅⋅⋅,n) 个,既从
{
a
1
,
a
2
,
⋅
⋅
⋅
,
a
n
}
\{a_1,a_2,···,a_n\}
{a1,a2,⋅⋅⋅,an}中挑选
k
k
k 个元素和
a
n
+
1
a_{n+1}
an+1 组成一个子集。显然,挑选的方式数有
C
n
k
C_n^k
Cnk种,而剩下的
n
−
k
n-k
n−k 个元素划分为不相交的非空子集的方式数为
B
n
−
k
B_{n-k}
Bn−k,故
B
n
+
1
=
C
n
0
∗
B
n
+
C
n
1
∗
B
n
−
1
+
C
n
2
B
n
−
2
+
⋅
⋅
⋅
+
C
n
n
B
0
B_{n+1} = C_n^0*B_n + C_n^1 * B_{n-1} + C_n^2B_{n-2} + ··· + C_n^nB_0
Bn+1=Cn0∗Bn+Cn1∗Bn−1+Cn2Bn−2+⋅⋅⋅+CnnB0
又
C
n
k
=
C
n
n
−
k
C_n^k = C_n^{n-k}
Cnk=Cnn−k,所以
B
n
+
1
=
C
n
n
B
n
+
C
n
n
−
1
B
n
−
1
+
C
n
n
−
2
B
n
−
2
+
⋅
⋅
⋅
+
C
n
0
B
0
=
∑
k
=
0
n
C
n
k
B
k
B_{n+1} = C_n^nB_n + C_n^{n-1}B_{n-1} + C_n^{n-2}B_{n-2} + ··· + C_n^0B_0 = \sum_{k=0}^nC_n^kB_k
Bn+1=CnnBn+Cnn−1Bn−1+Cnn−2Bn−2+⋅⋅⋅+Cn0B0=k=0∑nCnkBk
和定理4.9用到了相似的证明思路。