1. 程式人生 > >二項式反演學習筆記

二項式反演學習筆記

組合數 莫比烏斯反演 矩陣 sum inline span 對稱 合數 pan

這是一篇防遺忘的二項式反演證明博客
在此不給出精妙的容斥證明,開始推代數證明
眾所周知二項式反演有兩個形式
\(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)\)
這個式子簡直妙啊……太對稱了
然而它更常用的形式是這個
\(f(n) = \sum_{i = 0}^{n}\binom{n}{i}g(i) \Leftrightarrow g(n) = \sum_{i = 0}^{n} (-1)^{n - i} \binom{n}{i} f(i)\)


我們來證明一下
證明反演的一般套路就是代入啦
\(f(n) = \sum_{i = 0}^{n} (-1)^{i}\binom{n}{i}g(i)\)
\(f(n) = \sum_{i = 0}^{n} (-1)^{i}\binom{n}{i}\sum_{j = 0}^{i} (-1)^{j} \binom{i}{j} f(j)\)
我們考慮更換枚舉順序
\(f(n) = \sum_{j = 0}^{n} \sum_{i = j}^{n} (-1)^{i + j} \binom{n}{i} \binom{i}{j} f(j)\)
如果只有j = n的時候,
\(\sum_{j = 0}^{n} \sum_{i = j}^{n} (-1)^{i + j} \binom{n}{i} \binom{i}{j}\)
值為1的話,那麽式子是成立的
(雖然在別的情況下例如加加減減之後也是f(n)但是這個式子就是有這樣特殊的性質)
\(\binom{n}{i} \binom{i}{j} = \frac{n!}{i!(n - i)!}\cdot\frac{i!}{j!(i - j)!} = \frac{n!}{(n - j)!j!}\cdot\frac{(n-j)!}{(n - i)![(n - i) - (n - j)]!} = \binom{n}{j}\binom{n - j}{n - i}\)
\(\sum_{j = 0}^{n} \sum_{i = j}^{n} (-1)^{2 \* n - i - j} \binom{n}{j}\binom{n - j}{n - i}\)

\(\sum_{j = 0}^{n} (-1)^{j} \binom{n}{j}\sum_{i = j}^{n} (-1)^{n - i}\binom{n - j}{n - i}\)
\(\sum_{j = 0}^{n} (-1)^{n - j} \binom{n}{j}\sum_{i = 0}^{n - j} (-1)^{i}\binom{n - j}{i}\)
顯然在組合數之間相隔一個填一個不同的+-號,考慮楊輝三角,除了第一行,剩下的和全是0
那麽就有
\(\sum_{j = 0}^{n} (-1)^{j} \binom{n}{j}[n == j]\)
只有當j = n的時候,值才是1,於是反演得證
對於第二種形式呢,可以也推出一個類似的式子
\(f(n) = \sum_{i = 0}^{n} (-1)^{i}\binom{n}{i}\sum_{j = 0}^{i} (-1)^{i - j} \binom{i}{j} f(j)\)
\(\sum_{j = 0}^{n} \sum_{i = j}^{n} (-1)^{i - j} \binom{n}{i} \binom{i}{j}\)
\(\sum_{j = 0}^{n} \sum_{i = j}^{n} (-1)^{2 * n - i + j} \binom{n}{j}\binom{n - j}{n - i}\)
\(\sum_{j = 0}^{n} (-1)^{n + j} \binom{n}{j}\sum_{i = j}^{n} (-1)^{n - i}\binom{n - j}{n - i}\)
\(\sum_{j = 0}^{n} (-1)^{n + j} \binom{n}{j}[n == j]\)
於是也可以得證

然後你會發現,這個東西寫成矩陣是個下三角,按理來說,這個東西會有一個上三角形式,例如莫比烏斯反演
那麽其實是有的
\(f(k) = \sum_{i = k}^{n} (-1)^{i}\binom{i}{k}g(i) \Leftrightarrow g(k) = \sum_{i = k}^{n} (-1)^{i} \binom{i}{k}f(i)\)
什麽,也是那麽對稱的麽
還有一個常用形式
\(f(k) = \sum_{i = k}^{n} \binom{i}{k}g(i) \Leftrightarrow g(k) = \sum_{i = k}^{n} (-1)^{i - k} \binom{i}{k}f(i)\)

然後再去證明
\(f(k) = \sum_{i = k}^{n} (-1)^{i}\binom{i}{k}g(i)\)
\(f(k) = \sum_{i = k}^{n} (-1)^{i}\binom{i}{k} \sum_{j = i}^{n} \binom{j}{i} f(j)\)
\(f(k) = \sum_{i = k}^{n} (-1)^{i}\binom{i}{k} \sum_{j = i}^{n} (-1)^{j} \binom{j}{i} f(j)\)
\(f(k) = \sum_{j = k}^{n} \sum{i = k}^{j} (-1)^{i + j}\binom{i}{k} \binom{j}{i} f(j)\)
\(\binom{i}{k}\binom{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)]!} = \binom{j}{k}\binom{j - k}{i - k}\)
\(f(k) = \sum_{j = k}^{n} \sum{i = k}^{j} (-1)^{i + j - 2\*k}\binom{j}{k}\binom{j - k}{i - k}\)
\(f(k) = \sum_{j = k}^{n} (-1)^{j - k}\binom{j}{k}\sum{i = k}^{j} (-1)^{i - k}\binom{j - k}{i - k}\)
\(f(k) = \sum_{j = k}^{n} (-1)^{j - k}\binom{j}{k}\sum{i = 0}^{j - k} (-1)^{i}\binom{j - k}{i}\)
\(f(k) = \sum_{j = k}^{n} (-1)^{j - k}\binom{j}{k}[k == j]\)
同理第二種形式也可以證明
\(f(k) = \sum_{j = k}^{n} \sum{i = k}^{j} (-1)^{j - i}\binom{i}{k} \binom{j}{i} f(j)\)
\(f(k) = \sum_{j = k}^{n} \sum{i = k}^{j} (-1)^{j - i - k + k}\binom{j}{k}\binom{j - k}{i - k}\)
\(f(k) = \sum_{j = k}^{n} (-1)^{j - k}\binom{j}{k}\sum{i = k}^{j} (-1)^{k - i} \binom{j - k}{i - k}\)
\(f(k) = \sum_{j = k}^{n} (-1)^{j - k}\binom{j}{k}[j == k]\)

二項式反演學習筆記