1. 程式人生 > >和式的下標轉換與莫比烏斯函式

和式的下標轉換與莫比烏斯函式

和式的下標轉換

==

式子裡面有個數論符號 x|d 表示d是x的倍數,

專業術語叫x整除d ,比如x=2,n=7就是f(2)+f(4)+f(6)

變化一下,列舉x的倍數i,因為d=x*i的.變成右邊式子

 

再來一個多重和式,這裡對於i*j而言,i,j列舉範圍互不影響,兩個變數獨立,所以化簡為:

 

莫比烏斯反演

莫比烏斯函式的定義p1,p2,p3,...,pk為互不相等素數

線性篩法:

mu[1] = 1;
    for (int i = 2; i < maxn; ++i) {
        if(!vis[i]){pri[tot++]=i;mu[i]=-1;}		//遇未訪問即質數,莫比值-1
        for(int j=0;j<tot&&i*pri[j]<maxn;++j){	//對每個數掃一次前面質數
            vis[i * pri[j]] = 1;				//當前質數的i倍就標記憶訪問
            if(i%pri[j])mu[i*pri[j]]=-mu[i];		//pri[j]不可整除i則i*pri[j]比i多一種素因子
            else {mu[i*pri[j]]=0;break;}		//pri[j]整除i則i*pri[j]含pri[j]平方
        }
    }

 

莫比烏斯反演:

已知           則

要證明莫比烏斯反演需要用到兩條重要的性質:

有了這兩個性質,就可以證明莫比烏斯反演了,證明如右:

例題: