二项式反演

反演

定义

\[F(n)=\sum_{i=0}^n a_{n,i} \times G(i) \]

对于用 \(F\) 来表示 \(G\) 的过程称为反演,有

\[G(n)=\sum_{i=0}^n b_{n,i} \times F(i) \]

那么 \(a\)\(b\) 满足什么关系?直接带入 \(G(i)\)

\[F(n)=\sum_{i=0}^n a_{n,i} \sum_{j=0}^i b_{i,j} \times F(j) \]

考虑交换枚举顺序,枚举 \(F(j)\),再计数 \(F(j)\) 被计算了多少次。

\[F(n)=\sum_{j=0}^n F(j) \sum_{i=j}^n a_{n,i}\times b_{i,j} \]

上式成立,当且仅当

\[\sum_{i=j}^n a_{n,i}\times b_{i,j}=[j=n] \]

二项式反演

公式一

\[F(n)=\sum_{i=0}^n (-1)^i \binom{n}{i} G(i) \Leftrightarrow G(n)=\sum_{i=0}^n (-1)^i \binom{n}{i} F(i) \]

证明

\(a_{n,i}=b_{n,i}=(-1)^i \binom{n}{i}\)

那么就有

\[\sum_{i=j}^n a_{n,i}\times b_{i,j}=\sum_{i=j}^n (-1)^{i+j} \binom{n}{i}\binom{i}{j}=(*) \]

后面两个二项式系数可以简单变换

\[(*)=\sum_{i=j}^n (-1)^{i+j} \binom{n}{j} \binom{n-j}{i-j} \]

再用 \(i+j\) 替换 \(i\) ,注意指标范围

\[(*)=\binom{n}{j}\sum_{i=0}^{n-j} (-1)^i \binom{n-j}{i} \]

\(n\neq j\) 后面可以用二项式定理化掉,

\[(*)=\binom{n}{j}(1-1)^{n-j}=0 \]

\(n=j\) ,容易发现后面 \((*)=1\)
那么就有 \((*)=[n=j]\),得证。

公式二

对公式一进行简单变换,令 \(H(n)=(-1)^n G(n)\),那么就有

\[F(n)=\sum_{i=0}^n \binom{n}{i} H(i) \Leftrightarrow \frac{H(n)}{(-1)^n}=\sum_{i=0}^n (-1)^{i} \binom{n}{i} F(i) \]

事实上,下指标无需从 \(0\) 开始。那么对任意 \(m\in[0,n]\) ,有

\[F(n)=\sum_{i=m}^n \binom{n}{i} G(i) \Leftrightarrow G(n)=\sum_{i=m}^n (-1)^{n-i} \binom{n}{i} F(i) \]

公式三

\[F(n)=\sum_{i=n}^m \binom{i}{n} G(i) \Leftrightarrow G(n)=\sum_{i=n}^m (-1)^{i-n} \binom{i}{n} F(i) \]

证明略,只需一些简单的代数运算。

posted @ 2021-01-09 09:21  Kreap  阅读(108)  评论(0编辑  收藏  举报