各種反演和篩的總結
各種反演和篩的總結
可以說是從零開始學了。
主要記錄對這些東西的理解過程。
希望有發現錯誤的大佬能及時指出。
反演
對於兩個函式\(f(x)\)和\(g(x)\),我們有從\(f\)到\(g\)的關係式。
\(g(n)=\sum^{n}_{i=0}A_{n,i}f(i)\)
其中\(A_{n,i}\)表示某種型別的計算方式,比如說組合關係或者倍數關係之類的。
那麼很顯然直接代入此式就會很方便\(f->g\)的推導。
而如果我們要求\(g->f\)的推導怎麼辦。
於是我們引入了反演
很顯然並不是所有式子都可以有優秀的反演方法。
二項式反演
二項式相關,此時\(A_{n,i}\)
用更常見的形式:
\(g(n)=\sum_{i=0}^{n}{n\choose i}f(i)\)
\(f(n)=\sum_{i=0}^{n}(-1)^{n-i}{n\choose i}g(i)\)或者換下下標\(f(n)=\sum_{i=0}^{n}(-1)^{i}{n\choose i}g(n-i)\)
我們想想係數為什麼是正負一。
我們考慮\(f(k)\)內的每一個貢獻,它在\(i<k\)的時候會被計算的次數為:
\(\sum^{k-1}_{i=0}(-1)^{i}{k\choose i}\)
具體一點的意義,把以上式子用一個例項表述:
一共有\(n\)
那麼所求就是\(f(n)\)表示恰好有\(n\)個人坐不到自己的座位上的方案數
而\(g(n)\)表示所有坐座位的方案,那麼\(g(n)=n!\) 表示這\(n\)個人隨便坐。
\(g(n)=\sum_{i=0}^{n}{n\choose i}f(n-i)\)表示列舉\(i\)個人坐到自己的座位,再組合數選出這些人,然後其他人錯排。
化一下下標\(g(n)=\sum_{i=0}^{n}{n\choose i}f(i)\),是不是熟悉的式子了。
回到上面例項前的那個式子
\(f(k)\)中的貢獻相當於是恰好有\(k\)
考慮對於每一種方案,這裡相當於從\(0\)到\(n\)列舉坐到自己座位上的人,所以在\(i<k\)的時候同樣會計算到這些方案,而計算到的次數為:\(\sum^{k-1}_{i=0}(-1)^{i}{k\choose i}\)
這個自己理解一下。
把上面那個式子拆開變成 \(\sum^{k}_{i=0}(-1)^{i}{k\choose i}-(-1)^{k}{k\choose k}\)
\(k!=0\),所以左邊根據組合數的性質就是\(0\),而右邊剩下了\(-(-1)^k\)
也就是說多算了\(-(-1)^k\)遍,我們加回來就好了。
其實上面那個就是容斥。
或者說整個二項式反演都是容斥。
或者說這些反演都用到了容斥。
總是有一種這些都是別人構造好的東西的感覺。
反演的實質去\(yyb\)那看?或者百度也行,我記得看到了一篇不錯的。
初學呢哪那麼厲害。
莫比烏斯反演
這個時候的\(A_{n,i}\)不一樣了:
\(g(n)=\sum_{d|n} f(d)\)
相當於所有\(n\)的因數的\(f\)加起來,那這個怎麼做啊。
先放式子:\(f(n)=\sum_{d|n}\mu(\frac{n}{d})g(d)\)
這種情況顯然複雜一些,\(\mu\)在這裡相當於構造了一個函式,為了滿足這個反演。
對於初學者而言,我們顯然可以通過打表的優秀方式發現這個\(\mu\)的規律:
\(\mu(1)=1\)
根據唯一分解定理將一個數\(n\)分解為\(\prod_{i=1}^{t}p_i^{a_i}\) ,\(t\)為質因子個數
那麼若存在\(a_i>1\)則\(\mu(n)=0\),否則\(\mu(n)=(-1)^t\)
多手玩一下,就能更深刻地理解其中的關係。
另外我們把式子變個形,可以得到:
\(g(n)=\sum_{n|d}f(d)\),則有
\(f(n)=\sum_{n|d}\mu(\frac{d}{n})g(d)\)
這個要有個統一的上界,兩式本質相同。
作為初學者,先得會用這些東西。
要知道在哪用以及怎麼用。
看到題列出式子一定要嘗試向這些東西上靠,在做多了題之後就會理解了。