1. 程式人生 > >二項式反演理解與證明

二項式反演理解與證明

二項式反演

  如果有\(g_{i} = \sum_{j = 1}^{i} \binom{i}{j}f_{i} \Longleftrightarrow f_{i} = \sum_{j = 1}^{i}(-1)^{i - j} \binom{i}{j}g_{j}\)
  證明:
  先將1式帶入2式,得到
  \[f_{i} = \sum_{j = 1}^{i}(-1)^{i - j} \binom{i}{j}\sum_{k = 1}^{j} \binom{j}{k}f_{k}\]
  證明等式成立相當於證明對於等式右邊而言,所有\(f_{k}\)的係數為\([i == k]\)
  則\(f_{k}\)

的係數為\(\sum_{j = k}^{i} (-1)^{i - j} \binom{i}{j} \binom{j}{k}\)
  化簡:\[\sum_{j = k}^{i}(-1)^{i - j} \frac{i!}{j!(i - j)!} \frac{j!}{k!(j - k)!}\]
  消去\(j!\),提出\(\frac{i!}{k!}\),
  \[(\sum_{j = k}^{i}(-1)^{i - j} \frac{1}{(i - j)!(j - k)!}) \frac{i!}{k!}\]
  乘\((i - k)!\),除\((i - k)!\),
  \[(\sum_{j = k}^{i}(-1)^{i - j} \frac{(i - k)!}{(i - j)!(j - k)!}) \frac{i!}{k!(i - k)!}\]

  \[(\sum_{j = k}^{i}(-1)^{i - j} \binom{i - k}{j - k}) \binom{i}{k}\]
  ---> 證:\[\sum_{j = k}^{i}(-1)^{i - j} \binom{i - k}{j - k} = [i == k]\]
  如果成立,則:當\(i == k\)時,\(\binom{i}{k} = 1\),所以係數為1;當\(i != k\)時,前一個式子為0,所以係數為0.
  證明:
    當\(i - k\)為奇數時,相當於有\(i - k + 1\)個數相加(分別對應取0個,取1個...取i - k個),一共偶數個,其中第一項與最後一項異號,第二項與倒數第2項異號。。。根據組合數的對稱性,和為0。
    當\(i - k\)
為偶數時,相當於證:
    \(\binom{i}{0} - \binom{i}{1} + \binom{i}{2} - ... -\binom{i}{i - 1} + \binom{i}{i} = 0\)
    二項式定理證明
      \[0^{n} = (1 - 1)^{n} = \sum_{k = 0}^{n} \binom{n}{k}x^{n - k}y^{k} = 0\]
      其中\(x = 1, y = -1\).
      則\(x^{n - k}\)恆為1,\(y^{k} = +1, -1, +1, -1 ....\)
      因此原式成立
    組合數證明(楊輝三角)
      原式 = \(\binom{i - 1}{0} - (\binom{i - 1}{0} + \binom{i - 1}{1})......\)
      因此最後每一項都被抵消了,所以原式 = 0;
  二項式反演還有另一種形式:
    \[g_{i} = \sum_{j = 1}^{i}(-1)^{j} \binom{i}{j} f_{j} \Longleftrightarrow f_{i} = \sum_{j = 1}^{i}(-1)^{j} \binom{i}{j}g_{j}\]
    這種性質可以用容斥來理解(非證明)。
    因為可以把\(f_{j}\)看做是滿足某個性質的一個由i個集合組成的小集合,並且每個這樣的小集合都是相等的。因此\(\binom{i}{j}\)就等於這樣的集合個數,而\((-1)^{j}\)是容斥係數,因為進行了容斥,所以\(g_{i}\)可以看做是不滿足某個性質的一個由i個集合組成的小集合,因此用\(g_{i}\)\(f\)陣列時,也是一樣的容斥方式。