莫比烏斯反演


莫比烏斯反演

(PS:在評論區中眾多dalao的催促下,我認真的寫了三天三夜寫完了這篇杜教篩,保證是精品!)

前言

(這大概是我第一次寫學習筆記吧OvO)
可能每一個剛開始接觸莫比烏斯反演的OIer,起初都會厭惡這個神奇的東西。(我也一樣233)每一個人厭惡的原因有許多,可能是這個煩人的式子,也可能僅僅只是因為不理解\(\mu\)函數而感到不爽。當然,莫比烏斯反演有一個小小的預備知識:整除分塊
那么我們先從莫比烏斯反演中最基礎的莫比烏斯函數\(\mu\)開始說起:

莫比烏斯函數

  • 首先,我們可以先明確一點,莫比烏斯函數並不是什么很高大上的東西,它其實只是一個由容斥系數所構成的函數。\(\mu(d)\)的定義是:
  1. \(d=1\)時,\(\mu(d)=1\)
  2. \(d=\Pi_{i=1}^{k}p_i\)\(p_i\)為互異素數時,\(\mu(d)=(-1)^k\)。(說直白點,就是\(d\)分解質因數后,沒有冪次大於平方的質因子,此時函數值根據分解的個數決定);
  3. 只要當\(d\)含有任何質因子的冪次大於等於2,則函數值為0.
  • 當然,莫比烏斯函數也有很多有趣的性質:
  1. 對於任意正整數\(n\)\(\sum_{d|n}\mu(d)=[n=1]\)。(\([n=1]\)表示只有當\(n=1\)成立時,返回值為\(1\);否則,值為\(0\);(這個就是用\(\mu\)是容斥系數的性質可以證明)(PS:這一條性質是莫比烏斯反演中最常用的)
  2. 對於任意正整數\(n\)\(\sum_{d|n}\frac{\mu(d)}{d}=\frac{\phi(n)}{n}\)。(這個性質很奇妙,它把歐拉函數和莫比烏斯函數結合起來,或許我之后寫杜教篩的學習筆記時會去證明吧)
  • 程序實現並不難,我們可以在線性篩素數的程序上略作修改,便可以篩出\(\mu\)函數。
  • 那我還是給一段線篩的代碼吧
void get_mu(int n)
{
    mu[1]=1;
    for(int i=2;i<=n;i++)
    {
        if(!vis[i]){prim[++cnt]=i;mu[i]=-1;}
        for(int j=1;j<=cnt&&prim[j]*i<=n;j++)
        {
            vis[prim[j]*i]=1;
            if(i%prim[j]==0)break;
            else mu[i*prim[j]]=-mu[i];
        }
    }
 }
  • 那么,莫比烏斯函數就這么告一段落了。

莫比烏斯反演

  • 解決完莫比烏斯函數的問題后,我們便迎來了重頭戲莫比烏斯反演
  • 定理:F(n)和f(n)是定義在非負整數集合上的兩個函數,並且滿足條件:

\[F(n)=\sum_{d|n}f(d) \]

那么存在一個結論:

\[f(n)=\sum_{d|n}\mu(d)F(\lfloor\frac{n}{d}\rfloor) \]

這個定理就稱作莫比烏斯反演定理

  • 莫比烏斯反演的證明主要有兩種方式,其中一種就是通過定義來證明;另外一種,我則是會在杜教篩中提到(利用狄利克雷卷積)。那么我先來說一說第一種證明方法:

\[\sum_{d|n}\mu(d)F(\lfloor\frac{n}{d}\rfloor)=\sum_{d|n}\mu(d)\sum_{i|\lfloor\frac{n}{d}\rfloor}f(i) \]

\[=\sum_{i|n}f(i)\sum_{d|\lfloor\frac{n}{i}\rfloor}\mu(d)=f(n) \]

(PS:如果不知道最后一步怎么來的,可以再去看性質一,至於和式的變換,就自己腦補一下吧)

  • 當然,莫比烏斯反演有另外的一種形式,當\(F(n)\)\(f(n)\)滿足:

\[F(n)=\sum_{n|d}f(d) \]

可以推出:

\[f(n)=\sum_{n|d}\mu(\frac{d}{n})F(d) \]

  • 感覺這個式子,可能在莫比烏斯反演中更加好用。

那么,莫比烏斯反演的基本內容就說完了。知道了這些內容,就已經可以解決一些有關的問題了。我做了一些關於莫比烏斯反演的題,具體題解可以看看我博客中的內容。

題目

YY的gcd

[POI2007]ZAP-Queries

[SDOI2015]約數個數和

[HAOI2011]Problem b

洛谷P1829 [國家集訓隊]Crash的數字表格

(未完,待更新)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM