先是在wiki上找了一下组合数学的词条. 发现涵盖的东西居然这么多. 有机会再看.
这篇只是用来总结课堂的一些知识.
鸽巢原理
定理 : 把 n+1 个物体放在 n 个盒子里, 至少有一个盒子里有两个以上的物体.
定理 : 鸽巢定理推广. q 1 , q 2 , … , q n ∈ Z + q_1, q_2, \ldots, q_n \in \mathbb{Z^+} q 1 , q 2 , … , q n ∈ Z + , 把 ∑ i q i − n + 1 \sum_i q_i - n + 1 ∑ i q i − n + 1 个物体放入 n n n 个盒子, 第一个盒子至少 q 1 q_1 q 1 个物体, 或者第二个盒子中至少有 q 2 q_2 q 2 个物体, … , 或者第 n 个盒子中至少有 q n q_n q n 个物体.
这两个定理用反证法很容易证明.
课本前半部分都是一些很古典的组合数学问题. 用物体, 盒子等定义不明的语言描述.
这里试着用集合论语言描述一下.
物体 集合 O (object), 可数集合
盒子/标签 集合 T (type), 可数集合.
一个方案/安排 a (arrangement), 是一个映射 a ∈ O → C a \in O \to C a ∈ O → C , O → C O \to C O → C 表示所有值域为 O O O , 定义域为 C C C 的映射的集合.
所有方案A = O → C A = O \to C A = O → C , 许多问题问的就是 ∣ A ∣ |A| ∣ A ∣ .
鸽巢定理: ∣ O ∣ = n + 1 |O| = n+1 ∣ O ∣ = n + 1 , ∣ T ∣ = n |T| = n ∣ T ∣ = n , 记 A = O → T A = O \to T A = O → T ∀ a ∈ A \forall a \in A ∀ a ∈ A , ∃ t 0 ∈ T \exists t_0 \in T ∃ t 0 ∈ T , ∣ a − 1 ( t 0 ) ∣ > 1 |a^{-1}(t_0)| > 1 ∣ a − 1 ( t 0 ) ∣ > 1
这里用映射的逆表示从值域映射到定义域集合的一个映射.
不得不说, 这么写的话, 定理的含义模糊了很多. 定理的成立也不那么明显了.
Ramsey 数
略
排列与组合
加法乘法原则
加法原则 : 事件 A 有 m 种选取方式, 事件 B 有 n 种选取方式, 则选择 A 或 B, 有 m + n 中选取方式.
这有什么意义? 太显然了.. 一个事件A 有 m 种选取方式是什么意思? 这里并不涉及上面提到的 Object 和 Type. (因为一时想不到答案.. 走神看QQ去了..). 加法原则可以看做是单纯的集合相加. 看下面的乘法原则吧.
乘法原则 : 事件 A 有 m 种选取方式, 事件 B 有 n 种选取方式, 选取 A 然后选取 B 有 mn 中选取方式
这不也仅仅是集合相乘吗..
减法原则, 除法原则
集合的排列
n 元集合 S 的一个 r 排列是指从 S 中选 r 个元素, 依次排列. 方案数记为 P ( n , r ) P(n,r) P ( n , r )
P ( n , r ) = n ! ( n − r ) ! P(n, r) = \frac{n!}{(n-r)!} P ( n , r ) = ( n − r )! n !
集合组合
n 元集合 S 的 r 组合是指从 S 中选取 r 个元素的无序选择. 方案数记为 ( n r ) \binom{n}{r} ( r n ) . or C n r C_n^r C n r
( n r ) = n ! r ! ( n − r ) ! \binom{n}{r} = \frac{n!}{r!(n-r)!} ( r n ) = r ! ( n − r )! n !
这个是 S 集合的大小为 r 的子集的个数
多重集合的排列
多重集合里面可能会有相同元素, 比如 M = { a , a , a , b , c , c , d , d , d , d } M = \{a,a,a,b,c,c,d,d,d,d\} M = { a , a , a , b , c , c , d , d , d , d } = { 3 ⋅ a , 1 ⋅ b , 2 ⋅ c , 4 ⋅ d } \{3\cdot a, 1\cdot b, 2 \cdot c, 4 \cdot d\} { 3 ⋅ a , 1 ⋅ b , 2 ⋅ c , 4 ⋅ d }
一般把多重集合记为 M = { k 1 ⋅ a 1 , k 2 ⋅ a 2 , … , k n ⋅ a n } M = \{k_1\cdot a_1, k_2\cdot a_2, \ldots, k_n \cdot a_n\} M = { k 1 ⋅ a 1 , k 2 ⋅ a 2 , … , k n ⋅ a n } ,
定理 多重集合 M = { ∞ ⋅ a 1 , ∞ ⋅ a 2 , … , ∞ ⋅ a k } M = \{\infty\cdot a_1, \infty\cdot a_2, \ldots, \infty \cdot a_k\} M = { ∞ ⋅ a 1 , ∞ ⋅ a 2 , … , ∞ ⋅ a k } 的 r 排列数为 k r k ^ r k r
这个..勉勉强强吧
定理 多重集合M = { k 1 ⋅ a 1 , k 2 ⋅ a 2 , … , k n ⋅ a n } M = \{k_1\cdot a_1, k_2\cdot a_2, \ldots, k_n \cdot a_n\} M = { k 1 ⋅ a 1 , k 2 ⋅ a 2 , … , k n ⋅ a n } 的全排列数为
( k 1 + k 2 + … + k n ) ! k 1 ! k 2 ! … k n ! \frac{(k_1 + k_2 + \ldots + k_n)!}{k_1!k_2!\ldots k_n! } k 1 ! k 2 ! … k n ! ( k 1 + k 2 + … + k n )!
多重集合的组合
定理 多重集合 M = { ∞ ⋅ a 1 , ∞ ⋅ a 2 , … , ∞ ⋅ a k } M = \{\infty\cdot a_1, \infty\cdot a_2, \ldots, \infty \cdot a_k\} M = { ∞ ⋅ a 1 , ∞ ⋅ a 2 , … , ∞ ⋅ a k } 的 r 组合数为 ( k + r − 1 r ) \binom{k+r-1}{r} ( r k + r − 1 ) , 另一种描述 将 r 个相同的求放入 k 个不同的盒中.
定理 多重集合 M = { ∞ ⋅ a 1 , ∞ ⋅ a 2 , … , ∞ ⋅ a k } M = \{\infty\cdot a_1, \infty\cdot a_2, \ldots, \infty \cdot a_k\} M = { ∞ ⋅ a 1 , ∞ ⋅ a 2 , … , ∞ ⋅ a k } 要求 a 1 , … , a k a_1, \ldots, a_k a 1 , … , a k 至少出现一次的 r r r 组合数为 ( r − 1 k − 1 ) \binom{r-1}{k-1} ( k − 1 r − 1 )
高中时的”隔板法”
二项式定理
二项式定理 ( x + y ) n = ∑ r = 0 n ( n r ) x n − r y r (x + y)^n = \sum_{r=0}^{n} \binom{n}{r} x^{n-r} y ^r ( x + y ) n = ∑ r = 0 n ( r n ) x n − r y r
二项式定理 , ( 1 + x ) α = ∑ r = 0 ∞ ( α r ) x r ,(1+x)^{\alpha} = \sum_{r=0}^{\infty}\binom{\alpha}{r} x^r , ( 1 + x ) α = ∑ r = 0 ∞ ( r α ) x r for all α ∈ R \alpha \in \mathbb{R} α ∈ R , ( α r ) = α ( α − 1 ) … ( α − r + 1 ) r ! \binom{\alpha}{r} = \frac{\alpha(\alpha -1)\ldots(\alpha-r+1)}{r!} ( r α ) = r ! α ( α − 1 ) … ( α − r + 1 )
(1) 当 α = − n \alpha= - n α = − n ,
\begin{align} \binom{\alpha}{r} & = \binom{-n}{r} \\ &= \frac{(-n)(-n-1)\ldots(-n-r-1)}{r!} \\ &= (-1)^r\binom{n+r-1}{r} \end{align}
so, ( 1 + x ) − n = ∑ r = 0 ∞ ( − 1 ) r ( n + r − 1 r ) x r (1+x)^{-n} = \sum_{r=0}^{\infty}(-1)^r \binom{n+r-1}{r} x^r ( 1 + x ) − n = ∑ r = 0 ∞ ( − 1 ) r ( r n + r − 1 ) x r
(2) 当 α = 1 2 \alpha = \frac{1}{2} α = 2 1 ,
\begin{align}\binom{\alpha}{r} &= \binom{\frac{1}{2}}{r} \\ &=\frac{\frac{1}{2}(\frac{1}{2}-1)\ldots(\frac{1}{2}-r+1)}{r!}\\&=(-1)^{r-1}\cdot\frac{1}{r2^{2r-1}}\binom{2r-2}{r-1} \end{align}
so, ( 1 + x ) 1 2 = ∑ r = 0 ∞ ( − 1 ) r − 1 1 r 2 2 r − 1 ( 2 r − 2 r − 1 ) x r (1+x)^\frac{1}{2} = \sum_{r=0}^{\infty}(-1)^{r-1}\frac{1}{r2^{2r-1}}\binom{2r-2}{r-1}x^r ( 1 + x ) 2 1 = ∑ r = 0 ∞ ( − 1 ) r − 1 r 2 2 r − 1 1 ( r − 1 2 r − 2 ) x r
( n r ) \binom{n}{r} ( r n ) 的一些基本性质:
对称
递推关系
单峰(中间最大)
可以看做在杨辉三角中, 从顶点走到( n r ) \binom{n}{r} ( r n ) 点的所有路径数.
恒等式:
( n 0 ) + ( n 1 ) + … + ( n n ) = 2 n \binom{n}{0} + \binom{n}{1} + \ldots + \binom{n}{n} = 2^n ( 0 n ) + ( 1 n ) + … + ( n n ) = 2 n
( n i ) \binom{n}{i} ( i n ) 所有偶数项求和等于所有奇数项
1 ( n 1 ) + 2 ( n 2 ) + 3 ( n 3 ) + … + n ( n n ) = n 2 n − 1 1\binom{n}{1} + 2\binom{n}{2} + 3\binom{n}{3} + \ldots + n\binom{n}{n} = n2^{n-1} 1 ( 1 n ) + 2 ( 2 n ) + 3 ( 3 n ) + … + n ( n n ) = n 2 n − 1 , 证明: ( 1 + x ) n (1+x)^n ( 1 + x ) n 在 x = 1 x=1 x = 1 处求导.
∑ k = 0 n ( n k ) 2 = ( 2 n n ) \sum_{k=0}^{n}\binom{n}{k}^2 = \binom{2n}{n} ∑ k = 0 n ( k n ) 2 = ( n 2 n )
( 0 k ) + ( 1 k ) + … + ( n k ) = ( n + 1 k + 1 ) \binom{0}{k}+\binom{1}{k} + \ldots + \binom{n}{k} = \binom{n+1}{k+1} ( k 0 ) + ( k 1 ) + … + ( k n ) = ( k + 1 n + 1 ) , 组合意义,
∑ k = 0 n ( n k ) 2 = ( n 0 ) ( n n ) + ( n 1 ) ( n n − 1 ) + … + ( n n ) ( n 0 ) = ( 2 n n ) \sum_{k=0}^{n}\binom{n}{k}^2 = \binom{n}{0}\binom{n}{n} + \binom{n}{1}\binom{n}{n-1} + \ldots + \binom{n}{n}\binom{n}{0}= \binom{2n}{n} ∑ k = 0 n ( k n ) 2 = ( 0 n ) ( n n ) + ( 1 n ) ( n − 1 n ) + … + ( n n ) ( 0 n ) = ( n 2 n ) , 组合意义
∑ i = 0 r ( m i ) ( n r − i ) = ( m + n r ) \sum_{i=0}^{r}\binom{m}{i}\binom{n}{r-i} = \binom{m+n}{r} ∑ i = 0 r ( i m ) ( r − i n ) = ( r m + n ) , Vandermonde 恒等式, 上式的推广
∑ i = 0 m ( m i ) ( n r + i ) = ( m + n m + r ) \sum_{i=0}^{m}\binom{m}{i}\binom{n}{r+i} = \binom{m+n}{m+r} ∑ i = 0 m ( i m ) ( r + i n ) = ( m + r m + n ) ,
多项式定理
( x 1 + x 2 + … + x t ) n = ∑ ( n n 1 n 2 … n t ) x 1 n 1 x 2 n 2 … x t n t (x_1+ x_2+ \ldots + x_t)^n = \sum\binom{n}{n_1n_2\ldots n_t}x_1^{n_1}x_2^{n_2}\ldots x_t^{n_t} ( x 1 + x 2 + … + x t ) n = ∑ ( n 1 n 2 … n t n ) x 1 n 1 x 2 n 2 … x t n t
多项式系数 ( n n 1 n 2 … n t ) = n ! n 1 ! n 2 ! … n t ! \binom{n}{n_1n_2\ldots n_t} = \frac{n!}{n_1!n_2!\ldots n_t!} ( n 1 n 2 … n t n ) = n 1 ! n 2 ! … n t ! n !
容斥定理
S S S 是有限集合, P 1 , P 2 , … , P m P_1 ,P_2,\ldots,P_m P 1 , P 2 , … , P m 是有关 S S S 元素的性质, A i A_i A i 是 S S S 中具有 P i P_i P i 性质的元素组成的集合, 则 S S S 中不具有性质 P 1 , … , P m P_1,\ldots,P_m P 1 , … , P m 的元素个数为:
∣ A 1 ‾ ∩ A 2 ‾ ∩ … ∩ A m ‾ ∣ = ∣ S ∣ − ∑ ∣ A i ∣ + ∑ ∣ A i ∩ A j ∣ − ∑ ∣ A i ∩ A j ∩ A k ∣ + … + ( − 1 ) m ∣ A 1 ∩ A 2 ∩ … ∩ A m ∣ |\overline{A_1} \cap \overline{A_2} \cap \ldots \cap \overline{A_m}| = |S| - \sum|A_i| + \sum|A_i\cap A_j| - \sum|A_i\cap A_j \cap A_k| + \ldots + (-1)^m |A_1\cap A_2 \cap \ldots \cap A_m| ∣ A 1 ∩ A 2 ∩ … ∩ A m ∣ = ∣ S ∣ − ∑ ∣ A i ∣ + ∑ ∣ A i ∩ A j ∣ − ∑ ∣ A i ∩ A j ∩ A k ∣ + … + ( − 1 ) m ∣ A 1 ∩ A 2 ∩ … ∩ A m ∣
错排问题
1,2,…,n, 的一个错排指满足每个数不在原位置的全排列.
错排数D n = n ! ( 1 − 1 1 ! + 1 2 ! − 1 3 ! + … + ( − 1 ) n 1 n ! ) D_n = n!(1 - \frac{1}{1!}+\frac{1}{2!}-\frac{1}{3!}+\ldots+(-1)^n\frac{1}{n!}) D n = n ! ( 1 − 1 ! 1 + 2 ! 1 − 3 ! 1 + … + ( − 1 ) n n ! 1 )
证明方法1. 容斥定理 P i P_i P i 为 i 在原位置上. 2. 递推公式
有禁止模式的排列问题
容斥原理, P i P_i P i 为有某个禁止模式的排列
生成函数
定义
A ( x ) = a 0 + a 1 x + a 2 x 2 + … A(x) = a_0 + a_1x + a_2x^2 + \ldots A ( x ) = a 0 + a 1 x + a 2 x 2 + … 为序列 a 0 , a 1 , a 2 , … a_0, a_1, a_2, \ldots a 0 , a 1 , a 2 , … 的生成函数.
加法 , 对应项相加 A ( x ) + B ( x ) ≡ ∑ k = 0 ∞ ( a k + b k ) x k A(x)+B(x) \equiv \sum_{k=0}^\infty (a_k + b_k)x^k A ( x ) + B ( x ) ≡ ∑ k = 0 ∞ ( a k + b k ) x k
乘法 , 相乘后合并同次项 A ( x ) B ( x ) ≡ ∑ k = 0 ∞ ( a k b 0 + a k − 1 b 1 + … + a 0 b k ) x k A(x)B(x) \equiv \sum_{k=0}^{\infty} (a_kb_0+a_{k-1}b_1+ \ldots + a_0b_k)x^k A ( x ) B ( x ) ≡ ∑ k = 0 ∞ ( a k b 0 + a k − 1 b 1 + … + a 0 b k ) x k
加法零元: 0, 0, 0, …
乘法单位元: 1, 0, 0, …
形式多项式集合 R [ [ x ] ] R[[x]] R [[ x ]] 构成一个整环.
求导
生成函数的性质
一些计算规则和例子
b k = ∑ i = 0 k a i b_k = \sum_{i=0}^k a_i b k = ∑ i = 0 k a i ⟺ \iff ⟺ B ( x ) = A ( x ) 1 − x B(x) = \frac{A(x)}{1-x} B ( x ) = 1 − x A ( x )
b k = ∑ i = k ∞ a i ⟺ B ( x ) = A ( 1 ) − x A ( x ) 1 − x b_k=\sum_{i=k}^\infty a_i \iff B(x) = \frac{A(1)-xA(x)}{1-x} b k = ∑ i = k ∞ a i ⟺ B ( x ) = 1 − x A ( 1 ) − x A ( x )
b k = k a k ⟺ B ( x ) = x A ′ ( x ) b_k = ka_k \iff B(x) = xA'(x) b k = k a k ⟺ B ( x ) = x A ′ ( x )
b k = a k k + 1 ⟺ B ( x ) = 1 x ∫ 0 x A ( t ) d t b_k=\frac{a_k}{k+1} \iff B(x) = \frac{1}{x}\int_0^xA(t)\,\mathrm{d}t b k = k + 1 a k ⟺ B ( x ) = x 1 ∫ 0 x A ( t ) d t
组合型分配问题的生成函数
{ ∞ a 1 , ∞ a 2 , … , ∞ a n } \{\infty a_1, \infty a_2, \ldots, \infty a_n\} { ∞ a 1 , ∞ a 2 , … , ∞ a n } , 的 k k k 组合数
其生成函数 A ( x ) = ( ∑ i = 0 ∞ x i ) n A(x) = (\sum_{i=0}^\infty x^i )^n A ( x ) = ( ∑ i = 0 ∞ x i ) n , 每个因子 ∑ i = 0 ∞ x i \sum_{i=0}^\infty x^i ∑ i = 0 ∞ x i 表示一个 a_i 可取的个数, 生成函数的 k k k 次项就是 k k k 组合数.
A ( x ) = 1 ( 1 − x ) n A(x) = \frac{1}{(1-x)^n} A ( x ) = ( 1 − x ) n 1 , a k = ( n − 1 + k k ) a_k = \binom{n-1+k}{k} a k = ( k n − 1 + k )
排列型分配问题的指数型生成函数
指数型生成函数.
数列 a i a_i a i , 的指数型生成函数为 ∑ k = 0 ∞ a k x k k ! \sum_{k=0}^\infty a_k \frac{x^k}{k!} ∑ k = 0 ∞ a k k ! x k
正整数拆分
递推关系
常系数线性齐次递推关系
常系数线性非齐次
迭代归纳法
生成函数求解递推关系
特殊计数序列
fibonacci
catalan
集合划分 stirling
分配问题
Polya 计数
群
非空集合G G G 以及在上面的二元运算 ⋅ \cdot ⋅ , 满足以下条件
运算封闭
结合律成立
存在单位元
每个元素都存在逆元
则称 ⟨ G , ⋅ ⟩ \langle G, \cdot \rangle ⟨ G , ⋅ ⟩ 为群 .
由以上几条,可以证明的一些性质:
设⟨ G , ⋅ ⟩ \langle G, \cdot \rangle ⟨ G , ⋅ ⟩ is a group, e e e is the identity element.
then:
e − 1 = e e^{-1} = e e − 1 = e
e e e is unique
消去律成立, if a ⋅ b = a ⋅ c a \cdot b = a \cdot c a ⋅ b = a ⋅ c or b ⋅ a = c ⋅ a b \cdot a = c \cdot a b ⋅ a = c ⋅ a then
b = c b = c b = c
( a ⋅ b ) − 1 = b − 1 ⋅ a − 1 (a \cdot b)^{-1} =b^{-1} \cdot a^{-1} ( a ⋅ b ) − 1 = b − 1 ⋅ a − 1
定义子群 , 设 ⟨ G , ⋅ ⟩ \langle G, \cdot \rangle ⟨ G , ⋅ ⟩ is a group, and H H H is a non-empty
subset of G G G , if ⟨ H , ⋅ ⟩ \langle H, \cdot \rangle ⟨ H , ⋅ ⟩ is a group, we call it G G G ‘s
subgroup
一些性质包括, 只要 H H H 中运算封闭, ⟨ H , ⋅ ⟩ \langle H, \cdot \rangle ⟨ H , ⋅ ⟩ 就是子群.
置换群
有限集合D D D 上的 一一映射 成为 D D D 上的置换. 不失一般性, D = { 1 , 2 , … , n } D=\{1,2,\ldots, n\} D = { 1 , 2 , … , n }
一个置换
σ = ( 1 2 … n σ ( 1 ) σ ( 2 ) … σ ( n ) ) \sigma = \left ( \begin{array}{cccc}1&2 &\ldots & n\\ \sigma(1) &\sigma(2) &\ldots & \sigma(n)\end{array} \right ) σ = ( 1 σ ( 1 ) 2 σ ( 2 ) … … n σ ( n ) )
将1 映射到 σ ( 1 ) \sigma(1) σ ( 1 ) , 以此类推.
D = { 1 , 2 , … , n } D = \{1, 2,\ldots, n\} D = { 1 , 2 , … , n } 的所有置换构成一个群, 记为S n S_n S n , ∣ S n ∣ = n ! \big|S_n\big| = n! S n = n !
( 1 , 4 , 6 ) (1,4,6) ( 1 , 4 , 6 ) 这种叫轮换 , 1 → 4 , 4 → 6 , 6 → 1 1\to4, 4\to 6, 6 \to 1 1 → 4 , 4 → 6 , 6 → 1 , 其他不变.
举个例子, 轮换的复合运算: ( 1234 ) ( 1234 ) = ( 13 ) ( 24 ) (1234)(1234) = (13)(24) ( 1234 ) ( 1234 ) = ( 13 ) ( 24 )
任意置换都可以表示为不相交的轮换之积.
D D D and R R R are two finite sets, F = D → R F = D \to R F = D → R , G G G is a Permutation Group on D,
for some f 1 1 , f 2 ∈ F f1_1, f_2 \in F f 1 1 , f 2 ∈ F , if there exists σ ∈ G \sigma \in G σ ∈ G , s.t. forall d ∈ D d \in D d ∈ D ,
f 1 ( d ) = f 2 ( σ ( d ) ) f_1(d) = f_2(\sigma(d)) f 1 ( d ) = f 2 ( σ ( d ))
We call f 1 f_1 f 1 and f 2 f_2 f 2 are G G G equal (G G G 等价)
两个映射 f 1 f_1 f 1 , f 2 f_2 f 2 在 置换群G G G 上等价, 如果存在一个定义域上的一一映射, 把定
义域的元素用这个映射换一下 f 1 f_1 f 1 就是 f 2 f_2 f 2 .
显然这个关系是F F F 上的一个等价关系 (和 G G G 好像并没有什么关系)?
并不是和G G G 没有关系哟. 如果给定一个置换群G, 那么就能把 F , ( F = D → R ) F, (F = D \to R) F , ( F = D → R ) 划分成
多个等价类.
对应到组合问题中, 比如一个着色方案, 一个分配方案, 实际上就是一个F = D → R F = D \to R F = D → R ,
着色方案的话, D D D 是定点, R R R 是颜色. 分配方案的话, D D D 是小球, R R R 是盒子.
给定一个置换群G G G , 等价类的个数就是实际的组合方案数.
Burnside 引理
定义两个置换的共轭 :
G G G is subgroup of S n S_n S n , two elements s , t ∈ S n s, t \in S_n s , t ∈ S n , if there exists a g ∈ G g \in G g ∈ G , s.t.
s = g − 1 t g s = g^{-1} t g s = g − 1 t g , then we say s s s is a conjugate of t t t , and that viceversa, or s s s and
t t t of G G G are conjugate.
G-conjugate, G共轭是 S n S_n S n 上的一个等价关系. G共轭当且仅当, 两个置换是同型的.
定义同型 :
映射的等价类
Burnside引理 可以解决用m色对n个物体着色的方案计数问题, 但是计算量太大, 经过 Polya 改进形成 Polya 计数定理后才得到广泛应用.
组合设计