容斥定理及二项式反演
二项式定理:
\[(a+b)^n = \sum_{i=0}^{n}\binom{n}{i}a^ib^{n-i}
\]
很好理解。
我们经常会使用的式子:
\[(1+x)^n = \sum_{i = 0}^{n} x^i\binom{n}{i}
\]
容斥定理:
\[\begin{split} \left|\bigcup_{i=1}^{n}S_i\right|=&\sum_{i}|S_i|-\sum_{i<j}|S_i\cap S_j|+\sum_{i<j<k}|S_i\cap S_j\cap S_k|-\cdots\\ &+(-1)^{m-1}\sum_{a_i<a_{i+1} }\left|\bigcap_{i=1}^{m}S_{a_i}\right|+\cdots+(-1)^{n-1}|S_1\cap\cdots\cap S_n| \end{split}
\]
证明:
考虑某个元素被 \(m\) 个集合所包含,它对左侧的贡献为 \(1\) 。考虑它对右侧的贡献:
\[\begin{aligned}
&\sum_{i=1}^{m}(-1)^{i-1}\binom{m}{i} \\
=&-\sum_{i=1}^{m}(-1)^i\binom{m}{i} \\
=&1-\sum_{i=0}^{m}(-1)^i\binom{m}{i} \\
=&1-(1-1)^m = 1
\end{aligned}
\]
二项式反演:
\(f_n\) 表示恰好使用 \(n\) 个不同元素形成特定结构的方案数, \(g_n\) 表示从 \(n\) 个不同元素中选出 \(i \ge 0\) 个元素形成特定结构的总方案数。
那么:
\[g_n = \sum_{i=0}^{n}\binom{n}{i}f_i
\]
已知 \(g_n\) 求 \(f_n\) :
$$f_n = \sum_{i=0}^{n}\binom n i (-1)^{n-i} g_i$$
这就是二项式反演。
破防了。推了一个小时。证明:
首先需要的两个组合数的性质:
-
\[\binom n m \binom mk = \binom nk\binom{n-k}{m-k} \]
-
\[\sum_{i=0}^n\binom ni (-1)^i=[n=0] \]
第一个从定义就可以推得,但建议能够对这个式子有一个理解,不要用形式上的证明替代自己的理解,这样印象更深。第二个式子就是当 \(a=1,b=-1\) 时用二项式定理,但是当 \(n=0\) 时是特殊条件。
\[\begin{aligned}
f_n &=\sum_{i=0}^{n}\binom n i (-1)^{n-i}g_i \\
&=\sum_{i=0}^{n}\binom n i (-1)^{n-i}\sum_{j=0}^{i}\binom i j f_j \\
&=\sum_{i=0}^{n}\sum_{j=0}^i\binom n i (-1)^{n-i}\binom i jf_j \\
&=\sum_{j=0}^nf_j\sum_{i=j}^n\binom n i\binom ij (-1)^{n-i} \\
&=\sum_{j=0}^nf_j\sum_{i=j}^n\binom{n}{j}\binom{n-j}{i-j}(-1)^{n-i} \\
&=\sum_{j=0}^nf_j\binom{n}{j}\sum_{i=j}^n\binom{n-j}{i-j}(-1)^{n-i}
\end{aligned}
\]
这里再想法凑出上面的性质2,令 \(k = i - j\) 。
\[\begin{aligned}
&\sum_{j=0}^nf_j\binom{n}{j}\sum_{i=j}^n\binom{n-j}{i-j}(-1)^{n-i} \\
=&\sum_{j=0}^nf_j\binom{n}{j}\sum_{k=0}^{n-j}\binom{n-j}{k}(-1)^{k}(-1)^{n-j} \\
=&\sum_{j=0}^n(-1)^{n-j}f_j\binom{n}{j}\sum_{k=0}^{n-j}\binom{n-j}{k}(-1)^{k} \\
=&\sum_{j=0}^n(-1)^{n-j}f_j\binom{n}{j}[n=j] \\
=&f_n
\end{aligned}
\]
证完啦。

浙公网安备 33010602011771号