组合数学学习笔记
组合数学学习笔记
排列组合
排列组合的定义
排列:\(A_n^m=\large \frac{n!}{(n-m)!}\)
组合:\(\large \binom{n}{m}=\frac{n!}{m!(n-m)!}\)
插板法
这个东西非常重要
核心思想是转化问题为往空位中插入板子;
主要难点是刻画题目限制(显然);
Instance 1:正整数数目和
问题:现在有 \(n\) 个完全相同的元素,要求把这些元素分成 \(m\) 组,并且每组非空,求本质不同方案数。
可以把问题转化为:往 \(n-1\) 个空位中插入 \(m-1\) 个板子,因此答案是 \(\binom{n-1}{m-1}\);
这个也是方程 \(\sum \limits_{i=1}^n x_i =m\) 的正整数解数。
Instance 2:非负整数数目和
问题:现在有 \(n\) 个完全相同的元素,要求把这些元素分成 \(m\) 组,并且每组可以为空,求本质不同方案数。
考虑怎么刻画“空组”:可以加入 \(m\) 个元素,这 \(m\) 个元素当作空位;因为所有元素完全相同,我们可以当作每一组中都有且仅有一个空位。那么这样每一种插板方案都唯一对于一种原来的合法方案。
因此答案是 \(\binom{n+m-1}{m-1}=\binom{n+m-1}{n}\)。
这个也是方程 \(\sum \limits_{i=1}^n x_i =m\) 的非负整数解数。
Instance 3:带下界的数目和
问题:现在有 \(n\) 个完全相同的元素,要求把这些元素分成 \(m\) 组,并且第 \(i\) 组至少分到 \(a_i\),求本质不同方案数。
既然要求至少分到若干个,那就先分出去给它嘛:那么就剩下 \(n-\sum \limits_{i=1}^na_i\) 个物品,套用例二的式子,也就是 \(\binom{n-\sum \limits_{i=1}^n a_i +m-1}{m-1}\)。
这个也是方程 \(\sum \limits_{i=1}^n x_i =m\) 的满足 \(\forall_{1\le i\le n}x_i \ge a_i\) 的解数。
Instance 4:不相邻的排列
可以转化为例二的情况。
二项式定理
然OIer不需要证明
多重组合数
问题:给定包含 \(n\) 个元素的可重集 \(S\),求 \(S\) 的全排列数。
考虑元素互不相同时,全排列为 \(n!\);因为对于相同的元素,调整先后顺序后排列本质相同,因此需要除去相同元素的全排列数。
令 \(a_i\) 表示 \(x_i\) 的个数,那么 \(S\) 的全排列为 \(\large \frac{n!}{\prod_ia_i}\)。
这样的 \(S\) 的全排列数被称为多重组合数,可以表示为 \(\binom{n}{n_1,n_2,\cdots,n_k}\)。
二项式推论
由公示可以简单推出。
这个是杨辉三角的递推式。可以用在 \(O(n^2)\) 求组合数。