二项式反演
二项式反演
引入:
形式与多步容斥相似,公式与多步容斥类似,多步容斥公式为:
\[|A_1\cup A_2\cup...\cup A_n|=\sum\limits_{1\le i\le n}|A_i|-\sum\limits_{1\le i<j\le n}|A_i\cap A_j|+...+(-1)^{n-1}\times |A_1\cap A_2\cap ...\cap A_n|
\]
思考一种特殊情况:多个集合的交集大小只和集合的数目有关。
因此,我们就可以写出二项式反演的基础公式:
公式
设 \(f(n)\) 表示 \(n\) 个补集的交集大小,\(g(n)\) 表示 \(n\) 个原集合的大小
因此,这两个公式就可以分别写成:
\[f(n)=\sum\limits_{i=0}^n(-1)^i{n\choose i}g(i)\\
g(n)=\sum\limits_{i=0}^n(-1)^i{n\choose i}f(i)\]
显然这两个公式是等价,也是相互推导的关系,因此我们得到了二项式反演的形式1:
形式 1:
\[f(n)=\sum\limits_{i=0}^n{n\choose i}g(i)\Leftrightarrow g(n)=\sum\limits_{i=0}^n(-1)^{n-i}{n\choose i}f(i)
\]
形式 2:
\[f(n)=\sum\limits_{i=0}^n{n\choose i}g(i)\Leftrightarrow g(n)=\sum\limits_{i=0}^n(-1)^{n-i}{n\choose i}f(i)
\]
证明:
我们把右边带入到左边,调换两个求和符号的顺序,然后再考虑 \({n\choose i}{i\choose j}\) 的组合意义,稍微转换一下可得到:
\[f(n)=\sum\limits_{j=0}^n{n\choose j}f(j)(1-1)^{n-j}
\]
可以得出左右两边相等。
更加通用的证明公式为:
\[f(n)=\sum\limits_{i=m}^n{n\choose i}g(i)\Leftrightarrow g(n)=\sum\limits_{i=m}^n(-1)^{n-i}{n\choose i}f(i)
\]
形式 3:
这个公式和形式2类似,是最常用的公式,为:
\[f(n)=\sum\limits_{i=n}^m{i\choose n}g(i)\Leftrightarrow g(n)=\sum\limits_{i=n}^m(-1)^{i-n}{i\choose n}f(i)
\]
证明:
同上,把右边带入左侧即可。
组合意义:
我们记 \(f(n)\) 表示钦定选 \(n\) 个,\(g(n)\) 表示恰好选 \(n\) 个,则对于任意的 \(i\geq n\) ,\(g(i)\) 在 \(f(n)\) 中被计算了 \({i\choose n}\) 次,因此 \(f(n)=\sum\limits_{i=n}^m{i\choose n}g(i)\),其中 \(m\) 是数目上界。
例题:
不关注的有难了😠😠😠https://b23.tv/hoXKV9