【莫比烏斯反演】——蒟蒻的理解

loading……php

如下爲正文:html

======================================================================================函數

  序:最近被反演虐的不要不要的,遂決定寫一篇博文,防止之後本身翻車……優化

1.定義ui

  莫比烏斯函數:$\mu(n)$spa

 

   咱們引入一個概念,狄利克雷卷積。即$(f*g)(n)=\sum_{d|n}f(d)*g(\frac n d)$。顯然,狄利克雷卷積是知足交換律的。同時其也知足結合律與分配率。code

  在引入一個概念,積性函數,即函數$f$對於互質的兩個數$i,j$知足$f(i*j)=f(i)*f(j)$。其中若是對於任意$i,j$知足$f(i*j)=f(i)*f(j)$,咱們稱其爲徹底積性函數。htm

  再例舉一些函數的符號:歐拉函數$\phi$,約數個數函數$d$,約數和函數$\sigma$,單位函數$id(n)=n$,元函數$\varepsilon(n)$,當n爲1時,$\varepsilon(n)=1$,不然$\varepsilon(n)=0$,以及不變的函數$1(n)=1$。blog

  這裏給出一個線性篩的板子:get

  

 1 const int N=1e7+1;
 2  
 3 int miu[N],prim[N/5],num,sum[N];
 4 bool vis[N];
 5  
 6 inline void init(){
 7     miu[1]=1;
 8     sum[1]=1;
 9     for(int i=2;i<N;i++){
10         if(!vis[i])
11             prim[++num]=i,miu[i]=-1;
12         for(int j=1;prim[j]*i<N;j++){
13             vis[i*prim[j]]=1;
14             if(i%prim[j]==0){
15                 miu[i*prim[j]]=0;
16                 break;
17             }
18             miu[i*prim[j]]=-miu[i];
19         }
20         sum[i]=sum[i-1]+miu[i];
21     }
22 }

 

 

 

2.莫比烏斯函數的性質

  這一段是從目前作過的題總結的,之後沒準還得改(沒準寫的不夠……

   莫比烏斯函數一個十分總要的性質,即$(\mu *1)(n)$當且僅當$n==1$時,爲1,不然爲0。

  關於這個的證實用 二項式定理+惟一分解定理 是很好證實的,這裏就很少說了。

3.莫比烏斯反演

  關於這塊,一來是式子太長,二來是百度已經寫得很全面了,因此蒟蒻就不獻醜了。

  參考連接:百度百科

  我想,這裏比較重要的一個性質是:$F(n)=(f*1)(n)$,若$f$爲積性函數,則$F(n)$也是積性函數。

  證實以下:

  設$\gcd (n,p)==1$。

  $F(n*p)=\sum_{i|n}\sum_{j|p}f(i*j)=\sum_{i|n}f(i)\sum_{j|p}f(j)=F(n)*F(p)$

  證畢。

  這個性質在咱們反演出一個形如$ans=\sum_{i=1}^{n}g(i)\sum_{d|i}f(d)$的式子時,若$f$爲積性函數,則咱們能夠將這個式子時間複雜度優化到至少$O(n)$。

  例如:

  $$F(n)=\sum_{i|n}\mu(i)*i*n$$

4.一些小證實:

  身邊大佬們老是在思考一些證實,因此我也補補emmmm

  順便發一下網上的LaTeX(博客園真的是……)

(1)

  ,就是綠皮上辣個智障式子。換一下形式其實就是$\phi=(\mu*1)$。證實以下:

 

(2)

  。emmmmm雖然很弱,仍是證一下吧:

 

emmmm,而後當且僅當$\frac{n}{t}==1$時,後面的$\sum_{d|\frac{n}{t}}\mu(d)$爲1,不然爲0。證畢。

話說其實(1)裏面那個式子由mobius反演就能證實emmmmmm

 

5.一些奇奇怪怪篩法

1)最小質因數篩法:

  咱們在篩某個函數$F$的時候,每每其並非一個正常的積性函數,假設當前枚舉數字爲$i$,所用質數爲$p$,咱們通常會進行關於i與p的關係進行分類討論,而且會用到$i$將$p$除盡的後獲得的$j$,若一直除的話篩法就再也不是線性,爲了保證線性,咱們就要用到最小質因數。

  假設$prime$爲$i$的最小質因數,顯然在一般的線篩中咱們知道若枚舉的質數$p$知足$p<prime$則會枚舉下一個質數,不然$break$,那麼咱們利用這一點,假設咱們已經獲得了$i$的最小質因數$prime$以及其次方項,當前枚舉質數爲$p$,那麼對於計算到的$i*p$,當$p<prime$時直接按照$(i,p)==1$的狀況討論,同時顯然能夠知道$i*p$的最小質因數要跟新爲$p$;當$p==prime$時,則按照$(i,p)==p$的狀況討論,因爲咱們已經記錄了$i$的最小質因數$prime$以及其次方,咱們能夠直接$O(1)$得出其對應的$j$,同時對於$i*p$的最小質因數次數加1。

  這樣就維持了$O(n)$的線性篩。例子:BZOJ 3309 DZY love math

2)一類關於質數$p$成多項式的積性數論函數的篩法

  連接。

 

6.關於作題

  這個我也沒有什麼發言權,畢竟我太弱了……但仍是想總結一下本身的想法。

  反演最重要的是$gcd(i,j)==1$等價爲$\sum_{d|t}\mu(d),t=gcd(i,j)$這一式子,在目前所遇到的題目中,關鍵都是如何將題目給出的內容轉化爲$gcd$,而且正確的化解,這個我也不怎麼會,只能多練習了。

7.總結

  我的以爲一些基本證實會不會都不是很重要,畢竟也不可能考爲何$id=(\phi*1)$之類的,明白其過程,對思考有啓發就足以。

8.一些題目:

   BZOJ YY的GCD

  BZOJ 4176 Lucas的數論   BZOJ 3930 CQOI2015 選數   bzoj2693: jzptab   BZOJ 4174 tty的求助  BZOj 3601:一我的的數論
相關文章
相關標籤/搜索