容斥定理及二项式反演

二项式定理:

\[(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$$
这就是二项式反演。

破防了。推了一个小时。证明:

首先需要的两个组合数的性质:

  1. \[\binom n m \binom mk = \binom nk\binom{n-k}{m-k} \]

  2. \[\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} \]

证完啦。

posted @ 2024-07-31 16:00  星影流灿  阅读(41)  评论(0)    收藏  举报