1. 程式人生 > >【學術篇】The Xuanku Inversion Magic學習筆記

【學術篇】The Xuanku Inversion Magic學習筆記

退役之前寫的 然後因為退役就咕咕咕了...
後來發現數學考試能用的到個鬼就釋出出來了QwQ
主要是方便自己沒登入的時候查閱...
顯然子集什麼的是沒有學會的QwQ
所以學OI的話不要看本文!!!!!>


以下是懶得修改和編輯的原文:

基本引用自vfleaking大大的幻燈片...
我知道我寫的沒人看你萌只想要個連結而已~
本文註釋~ 為了不影響閱讀就新增一個跳轉咯~


什麼是反演:

假設有兩個函式\(f\)\(g\)滿足
\[ f(n)=\sum_ka_{n,k}g(k) \]
已知\(g\)\(f\)當然很水啦,而已知\(f\)\(g\)的過程就稱為反演。
在一般情況下,直接裸上求反演只能高斯消元解方程爽爽……
利用一些特別的反演,可以給解題提供思路。
即,可以用未知量表示已知量,然後解出來。

反演(Inversion)的過程就像變一場炫酷(Xuanku(?))的魔術(Magic)一樣, 所以我們就有了TXIM(The Xuanku Inversion Magic)這種東西 顯然是在一本正經的胡說八道←_←


我們考慮一個簡單問題:

說從前有\(n\)個人,編號為\(1,…,n\)
\(n\)個人站成一排,編號為\(i\)的人不能站在第\(i\)個。
求方案數。
\(n \leqslant 10^5\)

啊 我會容斥! 小學生的容斥就不說了qwq, 我們說一下中學生的容斥.
我們假如\(n\)個人都在隨便站, 那麼情況顯然一共有\(n!\)種;
如果有至少1

個人站對, 我們有\(n\)種方法選出這個站對的人, 剩下人有\((n-1)!\)種站法, 一共有\(n*(n-1)!\)種.
如果有至少2個人站對, 我們有\(\binom n2\)種選法選出站對的人, 剩下人有\((n-2)!\)種站法, 一共有\(\binom n2*(n-2)!\)種.
...
如果有至少k個人站對, 我們有\(\binom nk\)種方法選出站對的人, 剩下人有\((n-k)!\)種站法, 一共有\(\binom nk*(n-k)!\)種.

根據容斥, 令\(F(k)\)表示要求至少\(k\)個人站對的情況總數, 即\(F(k)=\binom nk*(n-k)!\)

, 我們有
\[ ans=F(0)-F(1)+F(2)-F(3)+...+(-1)^n*F(n)=\sum_{k=0}^n(-1)^kF(k)=\sum_{k=0}^n(-1)^k\binom ni(n-k)! \]
這樣就搞定了~ 那麼這個容斥係數\(\pm1\)是怎麼來的呢?
我們發現, 至少\(m\)個人站對的話, 一定有\(0,1,2,3...m-1\)個人站對了, 那我們在之前的過程中重複統計了多少次呢?
我們有\(\binom mk\)次統計至少\(k\)個人站對的情況, 所以一共多統計了
\[ \sum_{k=0}^{m-1}(-1)^k\binom mk \]
這麼多次, 我們只需要減回去就行了~ 那這玩意怎麼推啊?
我們可以知道有這麼個東西: (牛頓)二項式定理:
\[ (x+y)^k=\sum_{i=0}^n\binom nix^iy^{n-i} \]
所以
\[\sum_{k=0}^{m-1}(-1)^k\binom mk=\sum_{k=0}^m(-1)^k\binom mk-(-1)^m\binom mm=(1+(-1))^m-(-1)^m=(-1)^m\]
即對於每個\(m\), \(F(m)\)被多統計了\(-(-1)^m\)次, 減掉就行了~

是不是很簡單? 主要就是利用了
\[ \sum_{k=0}^n(-1)^k\binom nk=0 \]
這個性質, 不過嘛, 有個小例外, 就是當\(n=0\)時, 值應該為1. 所以我們要改一改:
\[ \sum_{k=0}^n(-1)^k\binom nk=[n=0] \]

這個問題我們就這麼解決了. 先別急著撒花, 我們從另一個角度思考一下這個問題.
\(f(x)\)表示\(x\)個人隨便站的方案數, \(g(x)\)表示\(x\)個人都站錯的方案數. 顯然
\[ f(n)=\sum_{k=0}^ng(k) \]
我們如果知道了\(g\)的表示式, 就可以推出\(f\)了.
可是, 我們現在知道的明明是\(f\), 我們要求的紅紅才是\(g\).
那能不能想辦法用\(f\)來表示\(g\)呢? 我們不妨大膽的猜測是可以的.

有一句看上去是廢話的話:
\[ g(n)=\sum_{m=0}^n[n-m=0]\binom nmg(m) \]
然後我們發現有個\([n-m=0]\), 那就把剛才非常炫酷的性質
\[ \sum_{k=0}^n(-1)^k\binom nk=[n=0] \]
代進去好了~
\[ =\sum_{m=0}^n\sum_{k=0}^{n-m}(-1)^k\binom {n-m}k\binom nmg(m) \]
然後\(\binom {n-m}k\binom nm\)表示了從\(n\)中選兩個長度分別為\(m\)\(k\)的子集, 所以和\(\binom nk\binom {n-k}m\)等價, 那我們調整(jiao)一下柿紙裡可愛的求和符號~
\[ =\sum_{k=0}(-1)^k\binom nk\sum_{m=0}^{n-k}\binom{n-k}mg(m) \]
好的我們看到最後的小朋友\(\sum_{m=0}^{n-k}\binom{n-k}mg(m)\)有那麼一點眼熟~ 你好啊, \(f\)君~
\[ g(n)=\sum_{k=0}(-1)^k\binom nkf(n-k) \]
而且很顯然, \(f(n-k)\)在我們的假設下就是\((n-k)!\), 所以和我們上面計算的結果是一個樣的~

然後我們把上面的柿子換一下下標, 讓它在數學的角度看更好看一點...從我的角度並看不出它好看在哪qwq
這樣我們就推出了大名鼎鼎的二項式反演!!
\[ f(n)=\sum_{k=0}^n\binom nkg(k) \\ g(n)=\sum_{k=0}^n(-1)^{n-k}\binom nkf(k) \]


我們考慮另一個小問題:

求長度為\(n\)且僅包含小寫英文字母且迴圈節長度恰為\(n\)的字串的個數。
迴圈節……就是最短的複製若干遍後拼起來跟原串相等的字串。
\(n\leqslant10^9\)

我們設\(f(x)\)為長度為\(x\)的字串的總數, \(g(x)\)為長度為\(x\)而且週期為\(x\)的字串(其實就是沒有長度小於\(x\)的迴圈節啦~)的總數. 那麼很顯然
\[ f(n)=\sum_{d|n}g(d) \]
woc這不是莫比烏斯反演麼= = 水過了下一個..
我們假設忘記了莫比烏斯反演. 現在我們只知道我們需要一個反演.
我們假設有個函式\(\mu\), 有如下的性質.
\[ \sum_{d|n}\mu(d)=[n=1] \]
你為什麼那麼熟練啊!
然後我們按照套路找到一句廢話並將上面的結論代入
\[ g(n)=\sum_{m|n}[\frac nm=1]g(m)=\sum_{m|n}\sum_{d|\frac nm}\mu(d)g(m) \]
套路來了, 因為\(d|\frac nm\), 所以\(md|n\), 所以\(m|\frac nd\)! 我們還是調整(jiao)一下柿紙裡的求和符號~
\[ g(n)=\sum_{d|n}\mu(d)\sum_{m|\frac nd}g(m) \]
喲, 這不是\(f\)冒出來了麼~
\[ g(n)=\sum_{d|n}\mu(d)f(\frac nd) \]
我們冥冥之中感覺這個柿紙裡的\(\mu\)是傳說中的莫比烏斯函式~

然後就完了. 這其實就是莫比烏斯反演.
或許還可以換一下下標
\[ f(n)=\sum_{d|n}g(d) \\ g(n)=\sum_{d|n}\mu(\frac nd)f(d) \]

另外狄利克雷卷積角度的解釋由於和本文無關但是我就是想提一下所以扔到了裡~

莫比烏斯反演


注:

  1. 本文的\(\binom nm\)均表示組合數, 即\(C_n^m\), 就係表示式為\(C_n^m=\frac {n!}{m!(n-m)!}\)的那個.
  2. \([x]\)(\(x\)為表示式)表示當\(x\)成立時為1, 否則為0.
  3. 另外狄利克雷卷積形式的理解就是:
    \[ f(n)=\sum_{d|n}g(d) =>f=g*1 \\ f*\mu=(g*1)*\mu=g*(1*\mu)=g*\epsilon=g \\ g=f*\mu => g(n)=\sum_{d|n}f(d)\mu(\frac nd) \]