二項式反演的證明

2022-08-05 14:00:15 字數 1260 閱讀 3543

我們都知道二項式的生成函式:

\[ f(x) = (1+x)^n = \sum_^\dbinomx^k

\]當我們帶入\(x=-1\)時,會得到這樣的式子:

\[ f(-1) = (1 - 1)^n = \sum_^\dbinom(-1)^k

\]當\(n=0\)時,左邊的部分沒有意義。但右邊算出來恰好為\(\binom=1\)。因此我們得到了乙個恒等式:

\[ \sum_^\dbinom(-1)^ = [n = 0] = \epsilon(n + 1)

\]假設我們知道\(f(n) = \sum_^\binomg(k)\),那麼我們如何用\(f(k)\)來表示\(g(n)\)呢?

我們首先拼湊出乙個二項式的形式:

\[ g(n) = \sum_^[n = m]g(m) = \sum_^\epsilon(n - m + 1)g(m)

\]然後代入上面那個恒等式:

\[ g(n) = \sum_^\sum_^(-1)^\dbinom\dbinomg(m)

\]根據組合的意義,不難得到:

\[ g(n) = \sum_^\sum_^(-1)^\dbinom\dbinomg(m)

\]接下來需要交換求和號。為了方便理解,我這裡令\(s_ = (-1)^\dbinom\dbinomg(m)\),那麼原式就變成了\(\sum_^\sum_^s_\)。

\[\begin

s_ & s_ & \cdots & s_ & s_\\

s_ & s_ & \cdots & s_\\

\vdots & \cdots & \vdots\\

s_ & s_\\

s_\end

\]顯然,之前的求法是一行一行,從左往右求和。我們同樣以一列一列,從上往下求和。因此:

\[ g(n) = \sum_^\sum_^(-1)^\dbinom\dbinomg(m)

\]提出和\(m\)無關的係數:

\[ g(n) = \sum_^(-1)^k \dbinom\sum_^\dbinomg(m)

\]注意到\(\sum_^\dbinomg(m)\)就是\(f(n-k)\)。因此:

\[ g(n) = \sum_^(-1)^k\dbinomf(n-k)

\]把它改寫成更加直觀的形式:

\[ g(n) = \sum_^(-1)^\dbinomf(k)

\]這就是二項式反演了。通過它,我們可以利用二項式求和推出不好計算的答案。

說到底,反演還是和容斥脫不了干係。

二項式反演代數證明

前幾天學了一下二項式反演的證明,咕了幾天後覺得還是發一篇部落格比較好。二項式反演,就是這麼個式子 f n sum c g i leftrightarrow g n sum 1 c f i 代數證明如下 begin g n sum 1 c sum c g j sum sum c c g j 1 end...

二項式反演

先從反演原理出發,假如存在兩個數列 f,g 我們知道 f n sum limits n a times g i 則 g n sum limits n b times f i 恆成立,那麼我們由 f 推出 g 的過程叫做反演。下面我們來 一下上面兩個式子恆成立的條件,將左邊帶入右邊,那麼有 begin...

二項式反演

形式與多步容斥相似,公式與多步容斥類似,多步容斥公式為 a 1 cup a 2 cup.cup a n sum limits a i sum limits n 1 ig i g n sum limits n 1 if i 顯然這兩個公式是等價,也是相互推導的關係,因此我們得到了二項式反演的形式1 形...