组合数学-Chapter II: 字符串, 集合与二项式系数

Chapter II: 字符串, 集合与二项式系数

组合数学是数学的一个分支,它研究事物 (一般以数字或符号指代) 在特定模式下的配置, 并研究这种配置的存在性, 所有可能配置的计数和分类, 以及配置的各种性质。组合数学与代数, 几何以及分析学均有着密切联系. 从本章开始, 我们将对组合数学这一课程进行简要介绍.



2.1 基本计算原理

首先, 我们对两个基本计算原理: 加法原理和乘法原理进行简介.

  1. 乘法原理:

    若进行 A 1 A_{1} A1 过程有 n 1 n_{1} n1 种方法, 进行 A 2 A_{2} A2 过程有 n 2 n_{2} n2 种方法, 则进行 A 1 A_{1} A1 过程后再进行 A 2 A_{2} A2 过程的方法共有 n 1 ⋅ n 2 n_{1}\cdot n_{2} n1n2 种.

  2. 加法原理:

    假定 A 1 A_{1} A1, A 2 A_{2} A2 过程是并行的. 若进行 A 1 A_{1} A1 过程有 n 1 n_{1} n1 种方法, 进行 A 2 A_{2} A2 过程有 n 2 n_{2} n2 种方法, 则进行 A 1 A_{1} A1 过程或进行 A 2 A_{2} A2 过程的方法共有 n 1 + n 2 n_{1}+ n_{2} n1+n2 种.


2.2 字符串, 排列与组合

实际上, 绝大多数的组合数学问题可以被归结为对 “字符串” (strings) 的研究. “字符串” 是由人类最基本的书写交流而衍生的产物, 也是人类和计算机交流, 乃至计算机间相互交流的方式. 本质上, 集合以及二项式系数都可归为字符串研究所得的产物. 下面, 我们对字符串这一概念进行简要介绍, 并继续研究 (包括但不限于) 字符串的排列和组合.


定义2.2.1 (字符串:Strings)

x 1 , x 2 , ⋯   , x n x_{1},x_{2},\cdots,x_{n} x1,x2,,xn 为集合 X \mathbb{X} X n n n 个元素. 我们称序列 x 1 x 2 ⋯ x n x_{1}x_{2}\cdots x_{n} x1x2xn 为:

集合 X 的一个长度为 n 的字符串.

[例]

X = { 0 , 1 } \mathbb{X} = \{0,1\} X={0,1}, 我们称:
000101 000101 000101
集合 X \mathbb{X} X 的长度为6的一个字符串.


[注]

我们也可以通过引入 Cartesian Product (笛卡尔积) 的方式定义字符串:

定义2.2.2 (笛卡尔积)

我们定义
X 1 × X 2 × ⋯ X n = { ( x 1 , x 2 , ⋯   , x n ) ; x i ∈ X i , i ⩽ i ⩽ m } \mathbb{X_{1}\times \mathbb{X_{2}}\times \cdots \mathbb{X_{n}}} = \{(x_{1},x_{2},\cdots,x_{n}); x_{i} \in \mathbb{X_{i}}, i\leqslant i\leqslant m \} X1×X2×Xn={(x1,x2,,xn);xiXi,iim}
并称
X 1 × X 2 × ⋯ X n \mathbb{X_{1}\times \mathbb{X_{2}}\times \cdots \mathbb{X_{n}}} X1×X2×Xn
为: 集合 X 1 , X 2 , ⋯   , X n \mathbb{X_{1}}, \mathbb{X_{2}}, \cdots, \mathbb{X_{n}} X1,X2,,Xn 的笛卡尔积 (Cartesian Product of X 1 , X 2 , ⋯   , X n \mathbb{X_{1}}, \mathbb{X_{2}}, \cdots, \mathbb{X_{n}} X1,X2,,Xn).

于是, 我们可将集合 X \mathbb{X} X 的长度为 n n n 的字符串视为 X \mathbb{X} X 自身作 n n n 次笛卡尔积的结果.

∣ X ∣ = m |\mathbb{X}| = m X=m. 不难得到, 集合 X \mathbb{X} X 的长度为 n n n 的字符串的个数共为 m n m^{n} mn.


[例]

集合 { 0 , 1 } \{0,1\} {0,1} 的, 长为 32 32 32 的字符串共有 2 32 2^{32} 232 个.


[注]

在 “字符串” 的定义中, 我们没有规定每种字符串的唯一性, 在列举过程中, 相同的字符串可以重复多次出现!

定义2.2.3 (排列:Permutation)

一个集合 X \mathbb{X} X 的, 大小为 n n n 的字符串 s 1 s 2 ⋯ s n s_{1}s_{2}\cdots s_{n} s1s2sn 被称为一个 X \mathbb{X} X 的排列, 当且仅当 s i ≠ s j , i ≠ j s_{i}\neq s_{j}, i\neq j si=sj,i=j.

注意到:

  1. 当且仅当 ∣ X ∣ ⩾ n |\mathbb{X}| \geqslant n Xn 时, 存在 X \mathbb{X} X 的排列.
  2. ∣ X ∣ ⩾ n |\mathbb{X}| \geqslant n Xn 时, ∣ X ∣ |\mathbb{X}| X 的排列共有 m ! ( m − n ) ! \frac{m!}{(m-n)!} (mn)!m! 种.

我们记 P ( n , k ) = n ! ( n − k ) ! . P(n,k) = \frac{n!}{(n-k)!}. P(n,k)=(nk)!n!.


[例]

X = { a , b , c , ⋯   , x , y , z } \mathbb{X} = \{a,b,c,\cdots, x,y,z\} X={a,b,c,,x,y,z}. ∣ X ∣ |\mathbb{X}| X 的长为 3 3 3 的排列共有
26 ! 23 ! = 15600 \frac{26!}{23!} = 15600 23!26!=15600
种.


定义2.2.4 (组合:Combination)

n n n k k k 均为正整数, 且满足 0 ⩽ k ⩽ n 0\leqslant k \leqslant n 0kn, 则
( n k ) = C ( n , k ) = P ( n , k ) k ! = n ! k ! ⋅ ( n − k ) ! . \binom nk = C(n,k) = \frac{P(n,k)}{k!} = \frac{n!}{k!\cdot (n-k)!}. (kn)=C(n,k)=k!P(n,k)=k!(nk)!n!.

[证明]

X \mathbb{X} X 为一个包含 n n n 个元素的集合. 我们已知, P ( n , k ) P(n,k) P(n,k) 代表集合 X \mathbb{X} X 的长为 k k k 的排列的数量. 而显然每个 C ( n , k ) C(n,k) C(n,k) 作为集合 X \mathbb{X} X k k k 元子集, 可视为 k ! k! k! 个不同的排列, 而每一个的排列在这样的计数中出现且仅出现一次. 故有: k ! C ( n , k ) = P ( n , k ) . k!C(n,k) = P(n,k). k!C(n,k)=P(n,k). 式子左右同除 k ! k! k!, 即得到集合 X \mathbb{X} X 的, 大小为 k k k 的子集的个数. ■ \blacksquare

注意:
( n k ) = ( n n − k ) . \binom {n}{k} = \binom{n}{n-k}. (kn)=(nkn).


2.3 重要示例和应用

在上文中, 我们介绍和总结了字符串, 排列与组合的概念, 为我们进一步的学习打下了概念基础. 为了进一步建立起 “组合证明” 的思想, 下文中我们将介绍一些基于组合联系思想的组合数计算与证明, 并对一类 “分配问题” 给出通用的解法, 最后对 Catalan 数和多项式系数进行简要介绍.


2.3.1 证明中的组合思想

[问题1]

n n n 为正整数. 证明:
1 + 3 + 5 + ⋯ + 2 n − 1 = n 2 . 1+3+5+\cdots +2n-1 = n^{2}. 1+3+5++2n1=n2.

[证明]

左侧等式的含义是前 n n n 个奇数的和. 我们可作如下认定:

1 1 1 代表一个 n × n n\times n n×n 点阵左上角的第一个元素.

3 3 3 即为在点阵内, 将点阵左上角第一个元素包围起来所需要的点的个数.

5 5 5 即为在点阵内, 将点阵左上角的 2 × 2 2\times 2 2×2 顺序主子式 包围起来所需要的点的个数.

⋯ ⋯ \cdots \cdots

由上可知, 等式左侧即为 n × n n \times n n×n 点阵内点的总个数 n 2 n^{2} n2, 证毕. ■ \blacksquare


[问题2]

证明:
( n 0 ) + ( n 1 ) + ⋯ + ( n n ) = 2 n . \binom n0 + \binom n1 + \cdots + \binom nn = 2^{n}. (0n)+(1n)++(nn)=2n.

[证明]

2 n 2^{n} 2n 是集合 0 , 1 {0,1} 0,1 的长为 n n n 的字符串的个数. 等式左侧通过对集合 0 , 1 {0,1} 0,1的长为 n n n 的字符串中, 0 0 0 1 1 1 的出现次数进行分类计数累加, 也实现了对字符串个数的计数. 因此等式左右两侧的式子在组合意义上是等价的, 证毕. ■ \blacksquare


[问题3]

n , k n, k n,k 均为正整数, 且满足 0 ⩽ k < n . 0 \leqslant k<n. 0k<n. 证明:
( n k + 1 ) = ( k k ) + ( k + 1 k ) + ⋯ + ( n − 1 k ) . \binom{n}{k+1} = \binom{k}{k} + \binom{k+1}{k} + \cdots + \binom{n-1}{k}. (k+1n)=(kk)+(kk+1)++(kn1).

[证明]

通过观察等式左右两侧, 并联系其组合上的意义, 我们可以得知: 等式左侧数值上等于在 n n n 个对象中选出 k + 1 k+1 k+1 个的方式总数, 而等式右侧表示了在 n n n 个对象中依次选择 k + 1 k+1 k+1 个的方法总数, 二者在组合意义上是等价的, 证毕. ■ \blacksquare


[问题4]

证明:
k ( n k ) = n ( n − 1 k − 1 ) . k\binom nk = n\binom{n-1}{k-1}. k(kn)=n(k1n1).

[证明]

等式左右两侧可视为: “在一个 n n n 人团体中选出一个 k k k 人小队, 并指派队长” 的不同操作方式: 左侧式子可视为: 先组队再选出队长; 右侧式子可视为: 先选出队长, 再组成队伍, 二者在组合意义上等价, 证毕, ■ \blacksquare


2.3.2 解决一类分配问题

[问题]

假设我们要将18根相同的笔分给A,B,C,D四人, 且保证每人所分得的笔数大于等于1, 有多少种不同的分法?

[解]

这一问题可被转化为: 在17个对象 (18根笔,有17个空隙可供我们分割)中选出三个(作为三个空隙,从而将整体分割为四个部分), 有多少种选法. 答案显然是 ( 17 3 ) \binom {17}3 (317).


[问题]

现在, 我们要求每个人所分得的笔数大于等于0, 此时又有多少种不同分法?

[解]

这一问题看上去比较复杂. 但是, 如果我们假定: 在筛选前就给每个人都分配一根笔, 在分配结束后我们再从每人手里收回一根笔, 原问题就被转化为: 将 ( 18 + 4 = 22 ) (18+4 = 22) (18+4=22) 根笔分配给四人, 使每人手里的笔数不少于 1 1 1 根. 因此, 这一问题的答案显然是 ( 21 3 ) \binom{21}{3} (321).


[思考]

  1. 如果我们又要求每个人在分配中至少分别分得 a , b , c , d a,b,c,d a,b,c,d 根笔, (当然 a + b + c + d ⩽ 18 a+b+c+d\leqslant 18 a+b+c+d18), 如何计算分配方案个数?
  2. 如果我们要求在分配中某人分得的笔不多于 t t t 根, 又该如何计算分配方案个数?

2.3.3 Catalan 数

因为不可描述的原因, 烦请参阅同专栏下相关文章.


2.3.4 多项式系数

定理2.3.1 (二项式定理)

x , y x, y x,y 均为实数, 且 x , y , x + y x,y,x+y x,y,x+y 非零. 则对于任意非零整数 n n n, 有:
( x + y ) n = ∑ i = 0 n ( n i ) x n − i y i . (x + y)^{n} = \sum_{i = 0}^{n}\binom{n}{i}x^{n-i}y^{i}. (x+y)n=i=0n(in)xniyi.

[证明]
( x + y ) n (x + y)^{n} (x+y)n 视为 n n n ( x + y ) (x+y) (x+y) 的累乘. ( x + y ) n (x+y)^{n} (x+y)n 的展开式中的每一项都是从累乘中或选择 x x x 项, 或选择 y y y 项从而得到的. 若 x x x 被选择了 n − i n-i ni 次, 而 y y y 被选择了 i i i 次, 我们所得到的,不考虑系数的项就是 x n − i y i x^{n-i}y^{i} xniyi. 对于每一个 i i i, 这样的选择共有 ( n i ) \binom{n}{i} (in) 种. 可见, 在组合意义上等式两边等价. ■ \blacksquare


下面, 我们对多项式系数进行简单的探讨. 假设出于不可描述的原因, 我们要对 n n n 节车底进行重新涂色, 工厂内有普快红, 高阻绿, 特快蓝三种油漆. 我们将随机选出 k 1 k_{1} k1 节车底并将其涂成高阻绿, k 2 k_{2} k2 节刷成普快红, 其余的 k 3 = n − ( k 1 + k 2 ) k_{3} = n-(k_{1} + k_{2}) k3=n(k1+k2) 节则被涂成特快蓝. 我们可使用以下的方法计算选择车底的方法数:

首先, 我们从 n n n 节车底中选出将要被涂成高阻绿的 k 1 k_{1} k1 节车底, 再从 n − k 1 n-k_{1} nk1 节车底中选择 k 2 k_{2} k2 节将被刷成普快红的车底, 最后剩下的车底通通被漆成特快蓝. 显然, 选法如下:
( n k 1 ) ( n − k 1 k 2 ) = n ! k 1 ! ( n − k 1 ) ! ⋅ ( n − k 1 ) ! k 2 ! ( n − ( k 1 + k 2 ) ) ! = n ! k 1 ! k 2 ! k 3 ! . \binom{n}{k_{1}}\binom{n-k_{1}}{k_{2}} = \frac{n!}{k_{1}!(n-k_{1})!}\cdot \frac{(n-k_{1})!}{k_{2}!(n-(k_{1} + k_{2}))!} = \frac{n!}{k_{1}!k_{2}!k_{3}!}. (k1n)(k2nk1)=k1!(nk1)!n!k2!(n(k1+k2))!(nk1)!=k1!k2!k3!n!.
我们称具有以上形式的数为 多项式系数. 显见, 二项式系数是多项式系数的特殊形式. 一般地:
( n k 1 , k 2 , ⋯   , k r ) = n ! k 1 ! k 2 ! ⋯ k r ! . \binom{n}{k_{1},k_{2},\cdots,k_{r}} = \frac{n!}{k_{1}!k_{2}!\cdots k_{r}!}. (k1,k2,,krn)=k1!k2!kr!n!.

定理2.3.2 (多项式定理)

x 1 , x 2 , ⋯   , x r x_{1},x_{2},\cdots, x_{r} x1,x2,,xr 为非零实数, 且满足 ∑ i = 1 r x i ≠ 0 \sum_{i=1}^{r}x_{i} \neq 0 i=1rxi=0. 则对任意整数 n n n, 有:
( x 1 + x 2 + ⋯ + x r ) n = ∑ k 1 + k 2 + ⋯ + k r = n ( n k 1 , k 2 , ⋯   , k r ) x 1 k 1 x 2 k 2 ⋯ x r k r . (x_{1} + x_{2} + \cdots + x_{r})^{n} = \sum_{k_{1} + k_{2} + \cdots + k_{r} = n}\binom{n}{k_{1},k_{2},\cdots,k_{r}}x_{1}^{k_{1}}x_{2}^{k_{2}}\cdots x_{r}^{k_{r}}. (x1+x2++xr)n=k1+k2++kr=n(k1,k2,,krn)x1k1x2k2xrkr.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值