基础组合数学
基础组合数学
组合数
\[\binom{n}{m} = \frac{n ^ {\underline{m}}}{m!}
\]
有关下降幂相关的前置知识见基础多项式
性质
加法恒等式:
\[\binom{n}{m} = \binom{n - 1}{m} + \binom{n - 1}{m - 1}
\]
提取吸收恒等式:
\[\binom{n}{m} = \frac{n}{m} \binom{n - 1}{m - 1}
\]
二项式定理
\[(a + b) ^ n = \sum_{k = 0} ^ \infty \binom{n}{k} a ^ {n - k} b ^ k
\]
当 \(k \geq n\) 时,\(\binom{n}{k} = 0\),因此原式子同样可以改写为:
\[(a + b) ^ n = \sum_{k = 0} ^ n \binom{n}{k} a ^ {n - k} b ^ k
\]
推论
当 \(a = 1, b = -1\) 时:
\[[n = 0] = \sum_{k = 0} ^ \infty (-1) ^ k \binom{n}{k}
\]
当 \(a = b = 1\) 时:
\[2 ^ n = \sum_{k = 0} ^ \infty \binom{n}{k}
\]
当 \(a = 1\) 时:
\[(1 + x) ^ n = \sum_{k = 0} ^ \infty \binom{n}{k} x ^ k
\]
如果对上式的左式取倒数:
\[\frac{1}{(1 + x) ^ n} = \sum_{k = 0} ^ \infty \binom{k + n - 1}{n - 1} x ^ k
\]
证明的方法可以参考普通生成函数(OGF)。
如果把 \(n\) 推广到复数域就得到了牛顿二项式定理:
\[(1 + x) ^ \alpha = \sum_{k = 0} ^ \infty \binom{\alpha}{k} x ^ k \quad (\alpha \in \mathbb{C})
\]
事实上,二项式定理就是牛顿二项式定理的一个特例。
范德蒙德卷积:
\[\binom{n + m}{c} = \sum_{k = 0} ^ c \binom{n}{k} \binom{m}{c - k}
\]
容斥原理
\[\begin{aligned}
f(S) = \sum_{T \subseteq S} g(T) &\Leftrightarrow g(S) = \sum_{T \subseteq S} (-1) ^ {|S| - |T|} f(T) \quad 子集容斥 \\
f(S) = \sum_{S \subseteq T} g(T) &\Leftrightarrow g(S) = \sum_{S \subseteq T} (-1) ^ {|T| - |S|} f(T) \quad 超集容斥
\end{aligned}
\]
上述两种容斥是最一般形式的容斥原理。
二项式反演
二项式反演是容斥原理的特殊应用。
定义 \(f(x)\) 为选取恰好 \(x\) 个元素的方案数,\(g(x)\) 为选取不超过 \(x\) 个元素的方案数,则有:
\[\begin{aligned}
g(n) &= \sum_{k = 0} ^ n \binom{n}{k} f(k) \\
\Leftrightarrow f(n) &= \sum_{k = 0} ^ n (-1) ^ {n - k} \binom{n}{i} g(k)
\end{aligned}
\]
另一种形式的二项式反演(标号颠倒):
\[\begin{aligned}
g(n) &= \sum_{m \leq k \leq n} \binom{n - m}{k - m} f(k) \\
\Leftrightarrow f(n) &= \sum_{m \leq k \leq n} (-1) ^ {k - m} \binom{n - m}{k - m} g(k)
\end{aligned}
\]
例题
[yLOI2019] 青原樱
由题意得有 \(n - m\) 个空位,则花苗可以插入 \(n - m + 1\) 个位置,则答案为 \((n - m + 1) ^ {\underline{m}}\)。
错位排列
错位排列指没有不动点的排列,即对于 \(1 \sim n\) 的排列 \(P\):
\[\forall i \in [1, n], P_i \neq i
\]
则称 \(P\) 为一个 \(1 \sim n\) 的错位排列(\(\textbf{derangement}\))。
错位排列数 \(D_n\) 满足如下的递推关系:
\[\begin{aligned}
D_0 &= 1 \\
D_n &= (n - 1)(D_{n - 1} + D_{n - 2}) \\
D_n &= n D_{n - 1} + (-1) ^ n
\end{aligned}
\]
卡特兰数
卡特兰数是一个特殊的数列,例如:
- 有长度为 \(2n\) 的序列 \(\{a\}\),包含 \(n\) 个 \(+1\) 与 \(n\) 个 \(-1\),问有多少种排列方式,使得 \(\{a\}\) 的任意前缀和均非负。
- \(n\) 个元素进栈序列为:\(1,2,3, \dots n\),问有多少种合法的出栈序列。
- \(n\) 个节点能构成不同的二叉树个数。
卡特兰数 \(C_n\) 就是以上问题的答案关于 \(n\) 的生成数列。
递推公式
\[\begin{aligned}
C_0 &= 1\\
C_n &= \binom{2n}{n} - \binom{2n}{n - 1} \\
\Rightarrow C_n &= \frac{\binom{2n}{n}}{n + 1} \\
\Rightarrow C_n &= \frac{4n - 2}{n + 1} C_{n - 1}
\end{aligned}
\]

浙公网安备 33010602011771号