组合学
排列和组合
-
基本概念
-
加法原理:
- 设集合 S S S 划分为部分 S 1 , S 2 , … , S m S_1,S_2,…,S_m S1,S2,…,Sm。则 S S S 的元素的个数可以通过找出它的每一部分的元素的个数来确定,把这些数相加,得到:
∣ S ∣ = ∣ S 1 ∣ + ∣ S 2 ∣ + ⋯ + ∣ S m ∣ \Large{|S|=|S_1|+|S_2|+\cdots+|S_m|} ∣S∣=∣S1∣+∣S2∣+⋯+∣Sm∣
-
加法原理
- 令
S
S
S 是元素的序偶
(
a
,
b
)
(a,b)
(a,b)的集合,其中第一个元素
a
a
a 来自大小为
p
p
p 的一个集合,而对于
a
a
a的每个选择,元素
b
b
b 存在着
q
q
q 种选择。
∣ S ∣ = p × q \Large{|S|=p \times q} ∣S∣=p×q
- 令
S
S
S 是元素的序偶
(
a
,
b
)
(a,b)
(a,b)的集合,其中第一个元素
a
a
a 来自大小为
p
p
p 的一个集合,而对于
a
a
a的每个选择,元素
b
b
b 存在着
q
q
q 种选择。
-
r − r- r−排列
- n n n 个元素中的 r r r 个元素的有序摆放称为 n n n 个元素的集合 S S S 的一个 r − r- r− 排列。
- n n n 个元素集合的 r − r- r− 排列的数目用 P ( n , r ) P(n,r) P(n,r) 来表示。
-
r − r- r− 组合
- n n n 个元素中对 r r r 个元素的无序选择称为 n n n 个元素的集合 S S S 的一个 r − r- r− 组合。
- n n n 个元素集合的 r − r- r− 组合的数目用 ( n r ) \begin{pmatrix} n\\r\end{pmatrix} (nr) 或 C ( n , r ) C(n,r) C(n,r) 来表示。
-
如果 S S S 是一个多重集,那么 S S S 的一个 r − r- r− 排列是 S S S 的 r r r 个元素的一个有序排放。如果 S S S 的元素总个数是 n n n,那么 S S S 的 n − n- n−排列也将成为 S S S 的排列。
-
-
性质
-
对于正整数 n n n 和 r r r, r ≤ n r≤n r≤n,有
P ( n , r ) = n × ( n − 1 ) × ( n − 2 ) × ⋯ × ( n − r + 1 ) = n ! ( n − r ) ! \large{P(n,r)=n \times (n-1) \times (n-2)\times \cdots \times (n-r+1)=\frac{n!}{(n-r)!}} P(n,r)=n×(n−1)×(n−2)×⋯×(n−r+1)=(n−r)!n! -
n n n 个元素的集合的循环 r − r- r− 排列计算
-
一般情形
P ( n , r ) r = n ! r ( n − r ) ! \large{\frac{P(n,r)}{r}=\frac{n!}{r(n-r)!}} rP(n,r)=r(n−r)!n! -
特殊地, n n n 个元素的集合的循环 n − n- n− 排列计算为 ( n − 1 ) ! (n-1)! (n−1)!
-
-
对于 0 ≤ r ≤ n 0≤r≤n 0≤r≤n, P ( n , r ) = r ! ( n r ) P(n,r)=r!\begin{pmatrix} n\\r\end{pmatrix} P(n,r)=r!(nr),即
( n r ) = n ! r ! ( n − r ) ! \Large{\begin{pmatrix} n\\r\end{pmatrix}=\frac{n!}{r!(n-r)!}} nr =r!(n−r)!n! -
令 S S S 是一个多重集,它有 k k k 个不同类型的元素。
-
每一个元素都有无穷重复个数。那么 S S S 的 r − r- r− 排列的个数为 k r k^r kr。
-
各元素的重数分别为 n 1 , n 2 , … , n k n_1,n_2,…,n_k n1,n2,…,nk。设 S S S 的大小为 n = n 1 + n 2 + … + n k n=n_1+n_2+…+n_k n=n1+n2+…+nk。则 S S S 的排列数等于
n ! n 1 ! n 2 ! ⋯ n k ! \Large{\frac{n!}{n_1!n_2!\cdots n_k!}} n1!n2!⋯nk!n!
-
-
鸽巢原理
- 基本概念
- 简单形式:如果 n + 1 n+1 n+1 个物体被放进 n n n 个盒子,那么至少有一个盒子包含两个或更多的物体。
- 加强形式:令 q 1 , q 2 , … , q n q_1,q_2,…,q_n q1,q2,…,qn 为正整数。如果将 q 1 + q 2 + … + q n − n + 1 q_1+q_2+…+q_n-n +1 q1+q2+…+qn−n+1 个物体放入 n n n 个盒子内,那么,或者第一个盒子至少含有 q 1 q_1 q1 个物体,或者第二个盒子至少含有 q 2 q_2 q2 个物体……或者第 n n n 个盒子至少含有 q n q_n qn 个物体。
- 性质
- 如果将 n n n 个物体放入 n n n 个盒子并且没有一个盒子是空的,那么每个盒子恰好包含一个物体。
- 如果将 n n n 个物体翻入 n n n 个盒子并且没有盒子被放入多于一个的物体,那么每个盒子里有一个物体。
- 如果 n n n 个非负整数 q 1 , q 2 , … , q n q_1,q_2,…,q_n q1,q2,…,qn 的平均数大于 r − 1 r-1 r−1,则那么至少有一个整数大于或等于 r r r
容斥原理
-
基本概念
-
容斥原理:集合 S S S 不具有性质 P 1 , P 2 , … , P m P_1,P_2,…,P_m P1,P2,…,Pm 的物体的个数由下式给出:
∣ A 1 ‾ ∩ A 2 ‾ ∩ ⋯ ∩ A m ‾ ∣ = ∣ S ∣ − ∑ i = 1 m ∣ A i ∣ + ∑ i , j : i < j ∣ A i ∩ A j ∣ − ∑ i , j , k : i < j < k ∣ A i ∩ A j ∩ A k ∣ + ⋯ + ( − 1 ) m ∣ A 1 ∩ A 2 ∩ ⋯ ∩ A m ∣ \begin{aligned} \left|\overline{A_{1}} \cap \overline{A_{2}} \cap \cdots \cap \overline{A_{m}}\right| & =|S|-\sum_{i=1}^{m}\left|A_{i}\right|+\sum_{i, j:i<j}\left|A_{i} \cap A_{j}\right|-\sum_{i, j, k:i<j<k}\left|A_{i} \cap A_{j} \cap A_{k}\right| \\ & +\cdots+(-1)^{m}\left|A_{1} \cap A_{2} \cap \cdots \cap A_{m}\right| \end{aligned} A1∩A2∩⋯∩Am =∣S∣−i=1∑m∣Ai∣+i,j:i<j∑∣Ai∩Aj∣−i,j,k:i<j<k∑∣Ai∩Aj∩Ak∣+⋯+(−1)m∣A1∩A2∩⋯∩Am∣
其中 A i A_i Ai 表示 S S S 中具有性质 P P P 的集合,$\overline{A_{i}} $表示 A i A_i Ai 在集合 S S S 中的补集。 -
推论:至少具有性质 P 1 , P 2 , … , P m P_1,P_2,…,P_m P1,P2,…,Pm 之一的集合
∣ A 1 ∪ A 2 ∪ ⋯ ∪ A m ∣ = ∑ i = 1 m ∣ A i ∣ − ∑ i , j : i < j ∣ A i ∩ A j ∣ + ∑ i , j , k : < < j < k ∣ A i ∩ A j ∩ A k ∣ + ⋯ + ( − 1 ) m + 1 ∣ A 1 ∩ A 2 ∩ ⋯ ∩ A m ∣ \begin{aligned} \left|A_{1} \cup A_{2} \cup \cdots \cup A_{m}\right|= & \sum_{i=1}^{m}\left|A_{i}\right|-\sum_{i, j: i<j}\left|A_{i} \cap A_{j}\right|+\sum_{i, j, k:<<j<k}\left|A_{i} \cap A_{j} \cap A_{k}\right| \\ & +\cdots+(-1)^{m+1}\left|A_{1} \cap A_{2} \cap \cdots \cap A_{m}\right| \end{aligned} ∣A1∪A2∪⋯∪Am∣=i=1∑m∣Ai∣−i,j:i<j∑∣Ai∩Aj∣+i,j,k:<<j<k∑∣Ai∩Aj∩Ak∣+⋯+(−1)m+1∣A1∩A2∩⋯∩Am∣ -
设集合 S S S 中满足性质 P , Q P,Q P,Q 的集合分别为 A , B A,B A,B ,满足性质 P P P 或 Q Q Q 的物体个数为:
∣ A ∪ B ∣ = ∣ A ∣ + ∣ B ∣ − ∣ A ∩ B ∣ \Large{|A\cup B|=|A|+|B|-|A\cap B|} ∣A∪B∣=∣A∣+∣B∣−∣A∩B∣
-
-
性质
-
错位排列
-
假设用 D n D_n Dn 表示 { 1 , 2 , … , n } \{1,2,…,n\} {1,2,…,n} 的错位排列的个数,用 S S S 表示 { 1 , 2 , … , n } \{1,2,…,n\} {1,2,…,n} 全排列, A i A_i Ai表示数字 i i i 在第 i i i 位的 { 1 , 2 , … , n } \{1,2,…,n\} {1,2,…,n} 的全排列, ∣ A i ∣ = ( n − 1 ) ! |A_i|=(n-1)! ∣Ai∣=(n−1)!。
∣ A 1 ‾ ∩ A 2 ‾ ∩ ⋯ ∩ A m ‾ ∣ = ∣ S ∣ − ∑ i = 1 m ∣ A i ∣ + ∑ i , j : i < j ∣ A i ∩ A j ∣ − ∑ i , j , k : i < j < k ∣ A i ∩ A j ∩ A k ∣ + ⋯ + ( − 1 ) m ∣ A 1 ∩ A 2 ∩ ⋯ ∩ A m ∣ \begin{aligned} \left|\overline{A_{1}} \cap \overline{A_{2}} \cap \cdots \cap \overline{A_{m}}\right| & =|S|-\sum_{i=1}^{m}\left|A_{i}\right|+\sum_{i, j:i<j}\left|A_{i} \cap A_{j}\right|-\sum_{i, j, k:i<j<k}\left|A_{i} \cap A_{j} \cap A_{k}\right| \\ & +\cdots+(-1)^{m}\left|A_{1} \cap A_{2} \cap \cdots \cap A_{m}\right| \end{aligned} A1∩A2∩⋯∩Am =∣S∣−i=1∑m∣Ai∣+i,j:i<j∑∣Ai∩Aj∣−i,j,k:i<j<k∑∣Ai∩Aj∩Ak∣+⋯+(−1)m∣A1∩A2∩⋯∩Am∣ -
由容斥原理得,
D n = n ! ( 1 − 1 1 ! + 1 2 ! − 1 3 ! + ⋯ + ( − 1 ) n 1 n ! ) \Large{D_n=n!\Big(1-\frac{1}{1!}+\frac{1}{2!}-\frac{1}{3!}+\cdots +(-1)^n\frac{1}{n!}\Big)} Dn=n!(1−1!1+2!1−3!1+⋯+(−1)nn!1)
-
-
特殊计数序列
-
基本概念
- Catalan 序列即序列
C
0
,
C
1
,
⋯
,
C
n
,
⋯
C_0,C_1,\cdots,C_n,\cdots
C0,C1,⋯,Cn,⋯
- 第 n n n 个 Catalan 数为 C n = 1 n − 1 ( 2 n n ) ( 0 , 1 , 2 , ⋯ ) C_n=\frac{1}{n-1}\begin{pmatrix} 2n\\n\end{pmatrix}(0,1,2,\cdots) Cn=n−11(2nn)(0,1,2,⋯)
- 第一类 Stirling 数
S
(
p
,
k
)
S(p,k)
S(p,k)
- 将 p p p 个有区别的球排成 k k k 个非空的圆排列的方案数
- 将 p p p 个球分成非空的 k k k 份,再把每份中的球排成一个圆( n n n 个球的圆排列数为 ( n − 1 ) ! (n-1)! (n−1)!)
- 第二类 Stirling 数
S
(
p
,
k
)
S(p,k)
S(p,k)
- 将 p p p 个有区别的球放到 k k k 个相同的盒子中,要求没有空盒的方案总数。
- Catalan 序列即序列
C
0
,
C
1
,
⋯
,
C
n
,
⋯
C_0,C_1,\cdots,C_n,\cdots
C0,C1,⋯,Cn,⋯
-
性质
-
第 n n n 个 Catalan 数的使用场景
-
n
n
n 个
+
1
+1
+1 和
n
n
n 个
−
1
-1
−1 构成的
2
n
2n
2n 项
a
1
,
a
2
,
.
.
.
,
a
2
n
a_1,a_2,...,a_{2n}
a1,a2,...,a2n
- 其部分和满足非负性质,即 a 1 + a 2 + . . . + a k ≥ 0 ( k = 1 , 2 , . . . , 2 n ) a_1+a_2+...+a_{k} \ge 0(k=1,2,...,2n) a1+a2+...+ak≥0(k=1,2,...,2n),这个数列的个数
- n n n 对括号构成的合法的括号序列的个数
- 含 n + 1 n+1 n+1 个叶子节点的二叉树个数
- 通过不相交于内部的对角线把凸 n + 2 n+2 n+2 边形拆分成若干个三角形,不同的拆分数
-
n
n
n 个
+
1
+1
+1 和
n
n
n 个
−
1
-1
−1 构成的
2
n
2n
2n 项
a
1
,
a
2
,
.
.
.
,
a
2
n
a_1,a_2,...,a_{2n}
a1,a2,...,a2n
-
第一类 Stirling 数 S ( p , k ) S(p,k) S(p,k)
-
S ( p , k ) S(p,k) S(p,k) 性质
- S ( p , 0 ) = 0 ( p ≥ 1 ) S(p,0)=0(p\ge 1) S(p,0)=0(p≥1)
- S ( p , p ) = 1 ( p ≥ 1 ) S(p,p)=1(p\ge 1) S(p,p)=1(p≥1)
-
计算 S ( p , k ) S(p,k) S(p,k)
-
1 ≤ k ≤ p − 1 1≤k≤p-1 1≤k≤p−1 。假设前 p − 1 p-1 p−1 个球都已放好
-
考察第 p p p个球:
-
单独放在一个盒子里。因为盒子是无区别的, 1 1 1 个球的圆排列只有 1 1 1 种,这种情形的方案数为 S ( p − 1 , k − 1 ) S(p-1,k-1) S(p−1,k−1) 。
-
放在一个已有球的盒子里,即插入一个非空的圆中。每个圆定义顺时针方向为正方
向。考虑第 p p p 个球在顺时针方向遇到的第一个球是哪个球,这个球有 p − 1 p-1 p−1 种选择。以这种情形的方案数为 ( p − 1 ) S ( p − 1 , k ) (p-1)S(p-1,k) (p−1)S(p−1,k) 。
-
-
故 S ( p , k ) = ( p − 1 ) S ( p − 1 , k ) + S ( p − 1 , k − 1 ) S(p,k)=(p-1)S(p-1,k)+S(p-1,k-1) S(p,k)=(p−1)S(p−1,k)+S(p−1,k−1)
-
-
-
第二类 Stirling 数 S ( p , k ) S(p,k) S(p,k)
-
S ( p , k ) S(p,k) S(p,k) 是将 p p p 个有区别的球放到 k k k 个相同的盒子中,要求没有空盒的方案总数。
-
S ( p , k ) S(p,k) S(p,k) 性质
- S ( p , 0 ) = 0 ( p ≥ 1 ) S(p,0)=0(p\ge 1) S(p,0)=0(p≥1)
- S ( p , p ) = 1 ( p ≥ 1 ) S(p,p)=1(p\ge 1) S(p,p)=1(p≥1)
- S ( p , p ) = 1 ( p ≥ 1 ) S(p,p)=1(p\ge 1) S(p,p)=1(p≥1)
-
1 ≤ k ≤ p − 1 1≤k≤p-1 1≤k≤p−1。假设前 p − 1 p-1 p−1 个球都已放好,考察第 p p p 个球:
-
单独放在一个盒子里。因为盒子是无区别的,这种情形的方案数为 S ( p − 1 , k − 1 ) S(p-1,k-1) S(p−1,k−1)。
-
放在一个已有球的盒子里。因为球是有区别的,所以与第 p p p 个球共盒子的球是有区
别的,需要选一个盒子放入第 p p p 个球。因此这种情形的方案数为 k S ( p − 1 , k ) kS(p-1,k) kS(p−1,k) 。
-
-
故 S ( p , k ) = k S ( p − 1 , k ) + S ( p − 1 , k − 1 ) S(p,k)=kS(p-1,k)+S(p-1,k-1) S(p,k)=kS(p−1,k)+S(p−1,k−1)
-
-