组合数学问题

文章大纲

1. 排列组合

1.1. 加法法则和乘法法则

A A A B B B是两个无关的性质,具有性质 A A A的事件有 m m m个,具有性质 B B B的事件有 n n n

法则事件数分析
加法法则:具有性质 A A A性质 B B B的事件 m + n m+n m+n这里的意思是两个性质任选其一, m + n = ( m + 0 ) + ( 0 + n ) m+n=(m+0)+(0+n) m+n=(m+0)+(0+n)
乘法法则:具有性质 A A A性质 B B B的事件 m × n m\times n m×n这里的意思是两个性质兼而有之, m m m n n n组合的情况即为 m × n m\times n m×n

1.2. 排列和组合

n n n个元素中选取 m m m个元素,求其方案数

元素是否有序方案数计算过程
排列:有序 A n m A_n^m Anm n ( n − 1 ) ⋯ ( n − m + 1 ) = n ! ( n − m ) ! n(n-1)\cdots(n-m+1)=\displaystyle\frac{n!}{(n-m)!} n(n1)(nm+1)=(nm)!n!
组合:无序 C n m C_n^m Cnm n ( n − 1 ) ⋯ ( n − m + 1 ) m ! = n ! m ! ( n − m ) ! \displaystyle\frac{n(n-1)\cdots(n-m+1)}{m!}=\frac{n!}{m!(n-m)!} m!n(n1)(nm+1)=m!(nm)!n!

1.3. 扩展问题

1.3.1. 圆周排列

n n n个元素中选取 m m m个元素有序排列在圆周上,其方案数为 A n m m \displaystyle\frac{A_n^m}{m} mAnm。例如 a a a b b b c c c d d d这4个元素,在直线上的排列 a b c d abcd abcd d a b c dabc dabc c d a b cdab cdab b c d a bcda bcda是不同的,但是在圆周上则是相同的,且选出几个元素就会重复几次,所以只需要将直线上排列数除以 m m m即可。

1.3.2. 允许重复的组合

一般的组合是从 n n n个元素中选取 m m m个元素,不允许重复选择同一个元素,组合数为 C n m C_n^m Cnm。而如果允许重复的选择同一个元素,则组合数为 C n + m − 1 m C_{n+m-1}^m Cn+m1m
可以这样思考,允许重复选择相当于在 n n n个元素中多加了 m − 1 m-1 m1个“哑元素”,一旦选中了一个“哑元素”,意味着在 n n n个元素中只能选 m − 1 m-1 m1个不同元素,也就对应着已经选中的 m − 1 m-1 m1个元素中的某一个需要重复一次。这样的“哑元素”最多只能选 m − 1 m-1 m1个,因为至少应该选择 n n n个元素中的一个,且此时这个元素重复了 m m m次。
不允许重复的组合以及允许重复的组合可以等价类比如下表

组合是否允许重复类比球放盒子模型解释
不允许重复 n n n个不同的球放入 m m m个相同的盒子且每盒1球盒子相同代表无序,直接从 n n n个球中选出 m m m
分别放入每个盒子即可,要求 n ≥ m n\ge m nm
允许重复 m m m个相同的球放入 n n n个不同的盒子(允许空盒)增加 n n n个假球,如果选中假球则实际上盒子中没有球,
使用隔板法对 m + n m+n m+n个球的 m + n − 1 m+n-1 m+n1个空插入 n − 1 n-1 n1个隔板,
将得到 n n n个部分放入盒子

问题变形:

  1. 对于整数 n n n m m m,方程 x 1 + x 2 + ⋯ + x n = m x_1+x_2+\cdots+x_n=m x1+x2++xn=m的非负整数解的个数为 C n + m − 1 m C_{n+m-1}^m Cn+m1m
  2. 式子 ( x 1 + x 2 + ⋯ + x n ) m (x_1+x_2+\cdots+x_n)^m (x1+x2++xn)m的展开式项数为 C n + m − 1 m C_{n+m-1}^m Cn+m1m
1.3.3. 不相邻的组合

n n n个元素中选取 m m m个元素,要求这 m m m个元素在原来的位置上均互不相邻,则组合数为 C n − m + 1 m C_{n-m+1}^{m} Cnm+1m
可以考虑 n n n个球之间一共可以插入 n − 1 n-1 n1个隔板,且隔板都是相同的。现在假设已经选出了互不相邻的 m m m个元素,那么如果把这 m m m个元素放回到原来的位置上,为了保证互不相邻,这 m m m个元素两两之间至少应该有两个隔板,所以先将 n − 1 n-1 n1个隔板分配 2 ( m − 1 ) 2(m-1) 2(m1)个到 m m m个元素两两之间,剩下的 n − 2 m + 1 n-2m+1 n2m+1个隔板就可以在 m m m个元素之间及两边随意插入,一共 m + 1 m+1 m+1个位置。此时问题转化为将 n − 2 m + 1 n-2m+1 n2m+1个相同隔板放在 m + 1 m+1 m+1个不同位置上的组合数。这可以由“球放盒子”模型直接求解,即 C ( n − 2 m + 1 ) + ( m + 1 ) − 1 ( m + 1 ) − 1 = C n − m + 1 m C_{(n-2m+1)+(m+1)-1}^{(m+1)-1}=C_{n-m+1}^{m} C(n2m+1)+(m+1)1(m+1)1=Cnm+1m

2. 递推关系

2.1. 汉诺塔问题

有三根杆子A,B,C。A杆上有 n n n个( n n n>1)穿孔圆盘,盘的尺寸由下到上依次变小。要求按下列规则将所有圆盘移至C杆:每次只能移动一个圆盘;大盘不能叠在小盘上面。问至少需要几次移动才能完成。

可以使用递归的思想,设 H ( n ) H(n) H(n)表示 n n n个圆盘所需要的移动次数,那么移动过程是先将前 n − 1 n-1 n1个圆盘移动到B上,接着将第 n n n个圆盘移动到C,最后还要把B上的 n − 1 n-1 n1个圆盘移动到C。所以递推公式为 H ( n ) = 2 H ( n − 1 ) + 1 H(n)=2H(n-1)+1 H(n)=2H(n1)+1,且 H ( 1 ) = 1 H(1)=1 H(1)=1。可以根据母函数或者数学归纳法得到 H ( n ) = 2 n − 1 H(n)=2^n-1 H(n)=2n1

2.2. Fibonacci序列

雌雄一对兔子,出生两个月后能就能繁殖雌雄一对小兔,问 n n n个月后有多少对兔子。

递推公式为 F ( n ) = F ( n − 1 ) + F ( n − 2 ) F(n)=F(n-1)+F(n-2) F(n)=F(n1)+F(n2),且 F ( 1 ) = F ( 2 ) = 1 F(1)=F(2)=1 F(1)=F(2)=1。可以根据母函数法得到 F ( n ) = α n − β n 5 F(n)=\displaystyle\frac{\alpha^n-\beta^n}{\sqrt{5}} F(n)=5 αnβn α = 1 + 5 2 \alpha=\displaystyle\frac{1+\sqrt{5}}{2} α=21+5 β = 1 − 5 2 \beta=\displaystyle\frac{1-\sqrt{5}}{2} β=215

3. 非线性递推序列

3.1. Stirling数

定义第二类Stirling数为将 n n n个不同的球放入 m m m个相同的盒子,且不允许空盒的方案数,用 S ( n , m ) S(n,m) S(n,m)表示。其递推式为 S ( n , m ) = S ( n − 1 , m − 1 ) + m S ( n − 1 , m ) S(n,m)=S(n-1,m-1)+mS(n-1,m) S(n,m)=S(n1,m1)+mS(n1,m),且 S ( 0 , ⋅ ) = S ( ⋅ , 0 ) = 0 S(0,\cdot)=S(\cdot,0)=0 S(0,)=S(,0)=0 S ( k , 1 ) = S ( k , k ) = 1 S(k,1)=S(k,k)=1 S(k,1)=S(k,k)=1对所有 k ≥ 1 k\ge 1 k1。Stirling数的每一项可以用下面的三角形计算,按照递推式开看,第几行就有几个数,且每一项都是上一行相同位置的数乘以位置序号,加上上一行前一位置的数。

《组合数学问题》

3.2. 球盒模型

按照球是否相同,盒是否相同,是否允许空盒,一共可以分为8种情况。

n n n个球 m m m个盒有无空盒方案数
不同不同有空盒 m n m^n mn,每个球都可在 m m m个盒中选择, n n n个球使用乘法法则
不同不同无空盒 m ! S ( n , m ) m!S(n,m) m!S(n,m),如果盒相同则为 S ( n , m ) S(n,m) S(n,m),再将 m m m个盒全排列
不同相同有空盒 n ≥ m n\ge m nm S ( n , 1 ) + ⋯ + S ( n , m ) S(n,1)+\cdots+S(n,m) S(n,1)++S(n,m)
n ≤ m n\le m nm S ( n , 1 ) + ⋯ + S ( n , n ) S(n,1)+\cdots+S(n,n) S(n,1)++S(n,n)
每一项表示 m − 1 m-1 m1个空盒, ⋯ \cdots 0 0 0个空盒
不同相同无空盒 S ( n , m ) S(n,m) S(n,m),Stirling数的定义
相同不同有空盒 C n + m − 1 m − 1 C_{n+m-1}^{m-1} Cn+m1m1,增加 m m m个假球,如果选中假球则实际上盒子中没有球,
使用隔板法对 m + n m+n m+n个球的 m + n − 1 m+n-1 m+n1个空插入 m − 1 m-1 m1个隔板,
将得到 m m m个部分放入盒子
相同不同无空盒 C n − 1 m − 1 C_{n-1}^{m-1} Cn1m1,使用隔板法对 n n n个球的 n − 1 n-1 n1个空插入 m − 1 m-1 m1个隔板,
将得到 m m m个部分放入盒子
相同相同有空盒穷取法,相当于将 n n n 0 , 1 , ⋯   , m 0,1,\cdots,m 0,1,,m进行分解的方案数,
且分解的数字没有顺序
相同相同无空盒穷取法,相当于将 n − m n-m nm 0 , 1 , ⋯   , m 0,1,\cdots,m 0,1,,m进行分解的方案数,
且分解的数字没有顺序

3.3. Catalan数

Catalan数定义为给定 2 n 2n 2n个数由 n n n 0 0 0 n n n 1 1 1组成,要求这样的排列方案数,使得排列的任意前 k k k个数中的 1 1 1的个数总是不少于 0 0 0的个数。可以求得这样的排列方案数 C a t a l a n ( 2 n ) = 1 n + 1 C 2 n n = C 2 n n − C 2 n n − 1 Catalan(2n)=\displaystyle\frac{1}{n+1}C_{2n}^n=C_{2n}^n-C_{2n}^{n-1} Catalan(2n)=n+11C2nn=C2nnC2nn1

关于Catalan数有极其多的变形问题,参见维基百科卡塔兰数,其一个巧妙的证明方法参见折现法——卡特兰数证明

4. 容斥原理

4.1. De morgan定理

  • A ∪ B ‾ = A ‾ ∩ B ‾ \overline{A\cup B}=\overline{A}\cap\overline{B} AB=AB
  • A ∩ B ‾ = A ‾ ∪ B ‾ \overline{A\cap B}=\overline{A}\cup\overline{B} AB=AB

4.2. 容斥原理

  • ∣ A ∪ B ∣ = ∣ A ∣ + ∣ B ∣ − ∣ A ∩ B ∣ |A\cup B|=|A|+|B|-|A\cap B| AB=A+BAB
  • ∣ A ∪ B ∪ C ∣ = ∣ A ∣ + ∣ B ∣ + ∣ C ∣ − ∣ A ∩ B ∣ − ∣ A ∩ C ∣ − ∣ B ∩ C ∣ + ∣ A ∩ B ∩ C ∣ |A\cup B\cup C|=|A|+|B|+|C|-|A\cap B|-|A\cap C|-|B\cap C|+|A\cap B\cap C| ABC=A+B+CABACBC+ABC

4.3. 广义容斥原理

  • ∣ A ∩ B ‾ ∣ = ∣ A ∣ − ∣ A ∩ B ∣ |A\cap \overline{B}|=|A|-|A\cap B| AB=AAB
  • ∣ A ∩ B ∩ C ‾ ∣ = ∣ A ∩ B ∣ − ∣ A ∩ B ∩ C ∣ |A\cap B\cap \overline{C}|=|A\cap B|-|A\cap B\cap C| ABC=ABABC
  • ∣ A ∩ B ‾ ∩ C ‾ ∣ = ∣ A ∣ − ∣ A ∩ B ∣ − ∣ A ∩ C ∣ + ∣ A ∩ B ∩ C ∣ |A\cap \overline{B}\cap \overline{C}|=|A|-|A\cap B|-|A\cap C|+|A\cap B\cap C| ABC=AABAC+ABC
  • ∣ A ∩ B ‾ ∩ C ‾ ∩ D ‾ ∣ = ∣ A ∣ − ∣ A ∩ B ∣ − ∣ A ∩ C ∣ − ∣ A ∩ D ∣ + ∣ A ∩ B ∩ C ∣ + ∣ A ∩ B ∩ D ∣ + ∣ A ∩ C ∩ D ∣ − ∣ A ∩ B ∩ C ∩ D ∣ |A\cap \overline{B}\cap \overline{C}\cap \overline{D}|=|A|-|A\cap B|-|A\cap C|-|A\cap D|+|A\cap B\cap C|+|A\cap B\cap D|+|A\cap C\cap D|-|A\cap B\cap C\cap D| ABCD=AABACAD+ABC+ABD+ACDABCD

4.4. 计算举例

4.4.1. 欧拉函数问题,求不超过120的素数个数

因为 1 1 2 = 121 > 120 11^2=121>120 112=121>120,所以不超过120的合数一定是2,3,5,7的倍数。分别令 A 2 A_2 A2 A 3 A_3 A3 A 5 A_5 A5 A 7 A_7 A7为小于120且是2,3,5,7的倍数,则不超过120的素数个数就是 ∣ A ‾ 2 ∩ A ‾ 3 ∩ A ‾ 5 ∩ A ‾ 7 ∣ |\overline{A}_2\cap\overline{A}_3\cap\overline{A}_5\cap\overline{A}_7| A2A3A5A7
∣ A ‾ 2 ∩ A ‾ 3 ∩ A ‾ 5 ∩ A ‾ 7 ∣ = 120 − ∣ A 2 ∪ A 3 ∪ A 5 ∪ A 7 ∣ = 120 − ( ∣ A 2 ∣ + ∣ A 3 ∣ + ∣ A 5 ∣ + ∣ A 7 ∣ ) + ( ∣ A 2 ∩ A 3 ∣ + ∣ A 2 ∩ A 5 ∣ + ∣ A 2 ∩ A 7 ∣ + ∣ A 3 ∩ A 5 ∣ + ∣ A 3 ∩ A 7 ∣ + ∣ A 5 ∩ A 7 ∣ ) − ( ∣ A 2 ∩ A 3 ∩ A 5 ∣ + ∣ A 2 ∩ A 3 ∩ A 7 ∣ + ∣ A 2 ∩ A 5 ∩ A 7 ∣ + ∣ A 3 ∩ A 5 ∩ A 7 ∣ ) + ∣ A 2 ∩ A 3 ∩ A 5 ∩ A 7 ∣ \begin{array}{ccl} |\overline{A}_2\cap\overline{A}_3\cap\overline{A}_5\cap\overline{A}_7|&=&120-|A_2\cup A_3\cup A_5\cup A_7|\\ &=&120-(|A_2|+|A_3|+|A_5|+|A_7|)\\ &&+(|A_2\cap A_3|+|A_2\cap A_5|+|A_2\cap A_7|+|A_3\cap A_5|+|A_3\cap A_7|+|A_5\cap A_7|)\\ &&-(|A_2\cap A_3\cap A_5|+|A_2\cap A_3\cap A_7|+|A_2\cap A_5\cap A_7|+|A_3\cap A_5\cap A_7|)\\ &&+|A_2\cap A_3\cap A_5\cap A_7| \end{array} A2A3A5A7==120A2A3A5A7120(A2+A3+A5+A7)+(A2A3+A2A5+A2A7+A3A5+A3A7+A5A7)(A2A3A5+A2A3A7+A2A5A7+A3A5A7)+A2A3A5A7
其中一项 ∣ A 2 ∣ = ⌊ 120 2 ⌋ = 60 |A_2|=\lfloor\displaystyle\frac{120}{2}\rfloor=60 A2=2120=60 ∣ A 3 ∣ = ⌊ 120 3 ⌋ = 40 |A_3|=\lfloor\displaystyle\frac{120}{3}\rfloor=40 A3=3120=40 ∣ A 5 ∣ = ⌊ 120 5 ⌋ = 24 |A_5|=\lfloor\displaystyle\frac{120}{5}\rfloor=24 A5=5120=24 ∣ A 7 ∣ = ⌊ 120 7 ⌋ = 17 |A_7|=\lfloor\displaystyle\frac{120}{7}\rfloor=17 A7=7120=17,两项 ∣ A 2 ∩ A 3 ∣ = ⌊ 120 2 × 3 ⌋ = 20 |A_2\cap A_3|=\lfloor\displaystyle\frac{120}{2\times 3}\rfloor=20 A2A3=2×3120=20 ∣ A 2 ∩ A 5 ∣ = ⌊ 120 2 × 5 ⌋ = 12 |A_2\cap A_5|=\lfloor\displaystyle\frac{120}{2\times 5}\rfloor=12 A2A5=2×5120=12 ∣ A 2 ∩ A 7 ∣ = ⌊ 120 2 × 7 ⌋ = 8 |A_2\cap A_7|=\lfloor\displaystyle\frac{120}{2\times 7}\rfloor=8 A2A7=2×7120=8 ∣ A 3 ∩ A 5 ∣ = ⌊ 120 3 × 5 ⌋ = 8 |A_3\cap A_5|=\lfloor\displaystyle\frac{120}{3\times 5}\rfloor=8 A3A5=3×5120=8 ∣ A 3 ∩ A 7 ∣ = ⌊ 120 3 × 7 ⌋ = 5 |A_3\cap A_7|=\lfloor\displaystyle\frac{120}{3\times 7}\rfloor=5 A3A7=3×7120=5 ∣ A 5 ∩ A 7 ∣ = ⌊ 120 5 × 7 ⌋ = 3 |A_5\cap A_7|=\lfloor\displaystyle\frac{120}{5\times 7}\rfloor=3 A5A7=5×7120=3,三项 ∣ A 2 ∩ A 3 ∩ A 5 ∣ = ⌊ 120 2 × 3 × 5 ⌋ = 4 |A_2\cap A_3\cap A_5|=\lfloor\displaystyle\frac{120}{2\times 3\times 5}\rfloor=4 A2A3A5=2×3×5120=4 ∣ A 2 ∩ A 3 ∩ A 7 ∣ = ⌊ 120 2 × 3 × 7 ⌋ = 2 |A_2\cap A_3\cap A_7|=\lfloor\displaystyle\frac{120}{2\times 3\times 7}\rfloor=2 A2A3A7=2×3×7120=2 ∣ A 2 ∩ A 5 ∩ A 7 ∣ = ⌊ 120 2 × 5 × 7 ⌋ = 1 |A_2\cap A_5\cap A_7|=\lfloor\displaystyle\frac{120}{2\times 5\times 7}\rfloor=1 A2A5A7=2×5×7120=1 ∣ A 3 ∩ A 5 ∩ A 7 ∣ = ⌊ 120 3 × 5 × 7 ⌋ = 1 |A_3\cap A_5\cap A_7|=\lfloor\displaystyle\frac{120}{3\times 5\times 7}\rfloor=1 A3A5A7=3×5×7120=1,四项 ∣ A 2 ∩ A 3 ∩ A 5 ∩ A 7 ∣ = ⌊ 120 2 × 3 × 5 × 7 ⌋ = 0 |A_2\cap A_3\cap A_5\cap A_7|=\lfloor\displaystyle\frac{120}{2\times 3\times 5\times 7}\rfloor=0 A2A3A5A7=2×3×5×7120=0,因此上式等于 120 − 60 − 40 − 24 − 17 + 20 + 12 + 8 + 8 + 5 + 3 − 4 − 2 − 1 − 1 + 0 = 27 120-60-40-24-17+20+12+8+8+5+3-4-2-1-1+0=27 12060402417+20+12+8+8+5+34211+0=27

4.4.2. 错排问题,即1,2, ⋯ \cdots ,n的全排列中每个元素都不在各自位置上的排列数

A i A_i Ai表示第 i i i个数仍然在自己位置上的排列数,所以只需要考虑其他位置元素的全排列数即可,因此错排列数就是 ∣ A ‾ 1 ∩ A ‾ 2 ∩ ⋯ ∩ A ‾ n ∣ = n ! − ∣ A 1 ∪ A 2 ∪ ⋯ ∪ A n ∣ |\overline{A}_1\cap\overline{A}_2\cap\cdots\cap\overline{A}_n|=n!-|A_1\cup A_2\cup\cdots\cup A_n| A1A2An=n!A1A2An,而

∣ A i ∣ = ( n − 1 ) ! i = 1 , 2 , ⋯   , n ∣ A i ∩ A j ∣ = ( n − 2 ) ! i ≠ j ,   i , j = 1 , 2 , ⋯   , n ⋮ ∣ A 1 ∩ A 2 ∩ ⋯ ∩ A n ∣ = ( n − n ) ! \begin{array}{rcll} |A_i|&=&(n-1)!\quad&i=1,2,\cdots,n\\ |A_i\cap A_j|&=&(n-2)!\quad&i\neq j,\ i,j=1,2,\cdots,n\\ &\vdots&&\\ |A_1\cap A_2\cap\cdots\cap A_n|&=&(n-n)!& \end{array} AiAiAjA1A2An===(n1)!(n2)!(nn)!i=1,2,,ni̸=j, i,j=1,2,,n

所以错排列数等于 n ! − C n 1 ( n − 1 ) ! + C n 2 ( n − 2 ) ! + ⋯ ± C n n ( n − n ) ! = n ! − n ! 1 ! + n ! 2 ! − ⋯ ± n ! n ! n!-C_n^1(n-1)!+C_n^2(n-2)!+\cdots\pm C_n^n(n-n)!=\displaystyle n!-\frac{n!}{1!}+\frac{n!}{2!}-\cdots\pm \frac{n!}{n!} n!Cn1(n1)!+Cn2(n2)!+±Cnn(nn)!=n!1!n!+2!n!±n!n!

    原文作者: 汉诺塔问题
    原文地址: https://blog.csdn.net/zhufenghao/article/details/70889484
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞