二项式反演学习笔记

这是一篇防遗忘的二项式反演证明博客
在此不给出精妙的容斥证明,开始推代数证明
众所周知二项式反演有两个形式
(f(n) = sum_{i = 0}^{n} (-1)^{i}inom{n}{i}g(i) Leftrightarrow g(n) = sum_{i = 0}^{n} (-1)^{i} inom{n}{i}f(i))
这个式子简直妙啊……太对称了
然而它更常用的形式是这个
(f(n) = sum_{i = 0}^{n}inom{n}{i}g(i) Leftrightarrow g(n) = sum_{i = 0}^{n} (-1)^{n - i} inom{n}{i} f(i))
我们来证明一下
证明反演的一般套路就是代入啦
(f(n) = sum_{i = 0}^{n} (-1)^{i}inom{n}{i}g(i))
(f(n) = sum_{i = 0}^{n} (-1)^{i}inom{n}{i}sum_{j = 0}^{i} (-1)^{j} inom{i}{j} f(j))
我们考虑更换枚举顺序
(f(n) = sum_{j = 0}^{n} sum_{i = j}^{n} (-1)^{i + j} inom{n}{i} inom{i}{j} f(j))
如果只有j = n的时候,
(sum_{j = 0}^{n} sum_{i = j}^{n} (-1)^{i + j} inom{n}{i} inom{i}{j})值为1的话,那么式子是成立的
(虽然在别的情况下例如加加减减之后也是f(n)但是这个式子就是有这样特殊的性质)
(inom{n}{i} inom{i}{j} = frac{n!}{i!(n - i)!}cdotfrac{i!}{j!(i - j)!} = frac{n!}{(n - j)!j!}cdotfrac{(n-j)!}{(n - i)![(n - i) - (n - j)]!} = inom{n}{j}inom{n - j}{n - i})
(sum_{j = 0}^{n} sum_{i = j}^{n} (-1)^{2 * n - i - j} inom{n}{j}inom{n - j}{n - i})
(sum_{j = 0}^{n} (-1)^{j} inom{n}{j}sum_{i = j}^{n} (-1)^{n - i}inom{n - j}{n - i})
(sum_{j = 0}^{n} (-1)^{n - j} inom{n}{j}sum_{i = 0}^{n - j} (-1)^{i}inom{n - j}{i})
显然在组合数之间相隔一个填一个不同的+-号,考虑杨辉三角,除了第一行,剩下的和全是0
那么就有
(sum_{j = 0}^{n} (-1)^{j} inom{n}{j}[n == j])
只有当j = n的时候,值才是1,于是反演得证
对于第二种形式呢,可以也推出一个类似的式子
(f(n) = sum_{i = 0}^{n} (-1)^{i}inom{n}{i}sum_{j = 0}^{i} (-1)^{i - j} inom{i}{j} f(j))
(sum_{j = 0}^{n} sum_{i = j}^{n} (-1)^{i - j} inom{n}{i} inom{i}{j})
(sum_{j = 0}^{n} sum_{i = j}^{n} (-1)^{2 * n - i + j} inom{n}{j}inom{n - j}{n - i})
(sum_{j = 0}^{n} (-1)^{n + j} inom{n}{j}sum_{i = j}^{n} (-1)^{n - i}inom{n - j}{n - i})
(sum_{j = 0}^{n} (-1)^{n + j} inom{n}{j}[n == j])
于是也可以得证

然后你会发现,这个东西写成矩阵是个下三角,按理来说,这个东西会有一个上三角形式,例如莫比乌斯反演
那么其实是有的
(f(k) = sum_{i = k}^{n} (-1)^{i}inom{i}{k}g(i) Leftrightarrow g(k) = sum_{i = k}^{n} (-1)^{i} inom{i}{k}f(i))
什么,也是那么对称的么
还有一个常用形式
(f(k) = sum_{i = k}^{n} inom{i}{k}g(i) Leftrightarrow g(k) = sum_{i = k}^{n} (-1)^{i - k} inom{i}{k}f(i))

然后再去证明
(f(k) = sum_{i = k}^{n} (-1)^{i}inom{i}{k}g(i))
(f(k) = sum_{i = k}^{n} (-1)^{i}inom{i}{k} sum_{j = i}^{n} inom{j}{i} f(j))
(f(k) = sum_{i = k}^{n} (-1)^{i}inom{i}{k} sum_{j = i}^{n} (-1)^{j} inom{j}{i} f(j))
(f(k) = sum_{j = k}^{n} sum_{i = k}^{j} (-1)^{i + j}inom{i}{k} inom{j}{i} f(j))
(inom{i}{k}inom{j}{i} = frac{i!}{k!(i - k)!}frac{j!}{i!(j - i)!} = frac{j!}{k!(j - k)!}frac{(j - k)!}{(i - k)![(j - k) - (i - k)]!} = inom{j}{k}inom{j - k}{i - k})
(f(k) = sum_{j = k}^{n} sum_{i = k}^{j} (-1)^{i + j - 2*k}inom{j}{k}inom{j - k}{i - k})
(f(k) = sum_{j = k}^{n} (-1)^{j - k}inom{j}{k}sum_{i = k}^{j} (-1)^{i - k}inom{j - k}{i - k})
(f(k) = sum_{j = k}^{n} (-1)^{j - k}inom{j}{k}sum_{i = 0}^{j - k} (-1)^{i}inom{j - k}{i})
(f(k) = sum_{j = k}^{n} (-1)^{j - k}inom{j}{k}[k == j])
同理第二种形式也可以证明
(f(k) = sum_{j = k}^{n} sum_{i = k}^{j} (-1)^{j - i}inom{i}{k} inom{j}{i} f(j))
(f(k) = sum_{j = k}^{n} sum_{i = k}^{j} (-1)^{j - i - k + k}inom{j}{k}inom{j - k}{i - k} f(j))
(f(k) = sum_{j = k}^{n} (-1)^{j - k}inom{j}{k}sum_{i = k}^{j} (-1)^{k - i} inom{j - k}{i - k} f(j))
(f(k) = sum_{j = k}^{n} (-1)^{j - k}inom{j}{k}[j == k] f(j))

原文地址:https://www.cnblogs.com/ivorysi/p/9058093.html