積性函數總結,歐拉函數,莫比烏斯函數

積性函數

符號

 (m,n)\ (m,n)最大公約數

 [m,n]\ [m,n]最小公倍數

 mama\ m|a,m整除a

若無明確說明, p\ p指素數

什麼是積性函數

我們設數論函數 f(x),S,m,nS\ f(x),定義域S,m,n \in S.
f(m)f(n)=f(mn),(m,n)=1f(x)f(m)f(n)=f(mn)f(x) f(m)f(n)=f(mn)\, , \, (m,n)=1 \Rightarrow f(x)是積性函數 \\ \,\\\,\\ f(m)f(n)=f(mn) \Rightarrow f(x)是完全積性的
可以證明有很多積性函數。例如:
f(n)=nk         f(n)=nk         f(n)=e2πianm         maf(n)=1 f(n)=n^{k} \,\,\,\,\,\,\,\,\,完全積性 \\ f(n)=n^{-k} \,\,\,\,\,\,\,\,\,完全積性 \\ f(n)=e^{2 \pi i a \frac{n}{m}} \,\,\,\,\,\,\,\,\,僅當m|a時積性 \\ f(n)=1 完全積性

定理

 f(n)\ f(n)
n=p1a1p2a2prar n=p_{1}^{a_{1}}p_{2}^{a_{2}} \cdots p_{r}^{a_{r}}
f(1)=1   ,   f(n)=f(p1a1)f(p2a2)f(prar)f(n) f(1)=1\,\,\,,\,\,\,f(n)=f(p_{1}^{a_{1}})f(p_{2}^{a_{2}}) \cdots f(p_{r}^{a_{r}}) \Leftrightarrow f(n)積性
f(1)=1   ,   f(n)=fa1(p1)fa2(p2)far(pr)f(n) f(1)=1 \,\,\,,\,\,\,f(n)=f^{a_{1}}(p_{1})f^{a_{2}}(p_{2}) \cdots f^{a_{r}}(p_{r}) \Leftrightarrow f(n)完全積性

證明是顯然的。

必要性

0=f(n0)=f(1n0)=f(1)f(n0) 0 = \neq f(n_{0})=f(1 \cdot n_{0})=f(1) \cdot f(n_{0})
這就推出 f(1)=1\ f(1)=1
其他可由積性函數的定義推出。

充分性

 (m,n)=1\ (m,n)=1
 n=p1a1p2a2psas\ n=p_{1}^{a_{1}}p_{2}^{a_{2}} \cdots p_{s}^{a_{s}}
 m=q1b1q2b2qrar\ m=q_{1}^{b_{1}}q_{2}^{b_{2}} \cdots q_{r}^{a_{r}}
 f(mn)=f(q1b1q2b2qrarp1a1p2a2psas)\ f(mn)=f(q_{1}^{b_{1}}q_{2}^{b_{2}} \cdots q_{r}^{a_{r}} p_{1}^{a_{1}}p_{2}^{a_{2}} \cdots p_{s}^{a_{s}} )
                    =f(q1b1)f(q2b2)f(qrar)f(p1a1)f(p2a2)f(psas)\ \,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,=f(q_{1}^{b_{1}})f(q_{2}^{b_{2}}) \cdots f(q_{r}^{a_{r}}) f(p_{1}^{a_{1}})f(p_{2}^{a_{2}}) \cdots f(p_{s}^{a_{s}})
                    =f(m)f(n)\ \,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,=f(m)f(n)

這就證明了積性。
完全積性的證明也是類似的方法。

 n=p1a1p2a2psar\ n=p_{1}^{a_{1}}p_{2}^{a_{2}} \cdots p_{s}^{a_{r}}
 m=p1b1p2b2prbr\ m=p_{1}^{b_{1}}p_{2}^{b_{2}} \cdots p_{r}^{b_{r}}
 f(mn)=f(p1a1+b1p2a2+b2psar+br)\ f(mn)=f(p_{1}^{a_{1}+b_{1}}p_{2}^{a_{2}+b_{2}} \cdots p_{s}^{a_{r}+b_{r}} )
                    =fa1+b1(p1)fa2+b2(p2)far+br\ \,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,=f^{a_{1}+b_{1}}(p_{1})f^{a_{2}+b_{2}}(p_{2}) \cdots f^{a_{r}+b_{r}}
                    =fa1(p1)fa2(p2)far(pr)fb1(p1)fb2(p2)fbrf(pr)\ \,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,=f^{a_{1}}(p_{1})f^{a_{2}}(p_{2}) \cdots f^{a_{r}}(p_{r})f^{b_{1}}(p_{1})f^{b_{2}}(p_{2}) \cdots f^{b_{r}}f(p_{r})
                    =f(n)f(m)\ \,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,= f(n)f(m)

重要積性函數 =====\ = = = = = \Rightarrow歐拉函數

 φ(x)\ \varphi(x),即歐拉函數,代表 1x\ 1-x中與 x\ x互質的數的個數。
顯然我們得到一個重要性質。
pQφ(p)=p1 p \in Q \Leftrightarrow \varphi(p)=p-1\\

定理

定理1

m=m1m2   ,   (m1,m2)>1φ(m)=m2φ(m1)=m1φ(m2)m=m1m2   ,   (m1,m2)=1φ(m)=φ(m1)φ(m2) m=m_{1}m_{2}\,\,\,,\,\,\,(m_{1},m_{2})>1 \Rightarrow \varphi(m)=m_{2} \varphi(m_{1})=m_{1} \varphi(m_{2}) \\ m=m_{1}m_{2}\,\,\,,\,\,\,(m_{1},m_{2})=1 \Rightarrow \varphi(m)=\varphi(m_{1}) \varphi(m_{2}) \\\,
對於第一條 m1,m2\ m_{1},m_{2}具有的素數種類相同
特別的,我們可以推出:

m=p1a1p2a2prar   aj>=1φ(m)=p1a11p2a21prar1φ(p1p2pr)φ(m)=p1a11(p11)p2a21(p21)prar1(pr1)=mpm(11p)      (1) m=p_{1}^{a_{1}} p_{2}^{a_{2}} \cdots p_{r}^{a_{r}}\,\,\,a_{j}>=1 \\ \varphi(m)=p_{1}^{a_{1}-1} p_{2}^{a_{2}-1} \cdots p_{r}^{a_{r}-1} \varphi(p_{1} p_{2} \cdots p_{r}) \\ \varphi(m)=p_{1}^{a_{1}-1}(p_{1}-1) p_{2}^{a_{2}-1}(p_{2}-1) \cdots p_{r}^{a_{r}-1}(p_{r}-1)=m \prod_{p|m} (1- \frac{1}{p}) \,\,\,\,\,\,(1)

證明這個定理需要前置技能既約剩餘系。(或者就記下來。)歐拉函數就是既約剩餘系元素的個數。
形象的理解就是區間可以被分爲很多分,如果區間數與區間長度不互質,那麼每一個區間與 m\ m互質的相等,否則就會有影響。

我們也可以用這個定理推出一點點小結論:

 φ(1)=φ(2)=1\ \varphi(1)= \varphi(2)=1所以

2φ(m)m3 2| \varphi(m) \Rightarrow m \ge 3

m=m1m2ms   ,   (mi,mj)=1   ,   0i<jsφ(m)=φ(m1)φ(m2)φ(ms)         (2) m=m_{1}m_{2} \cdots m_{s}\,\,\,,\,\,\,(m_{i},m_{j})=1\,\,\,,\,\,\,0 \le i < j \le s \\ \Rightarrow \varphi(m)= \varphi(m_{1}) \varphi(m_{2}) \cdots \varphi(m_{s})\,\,\,\,\,\,\,\,\,(2)

定理2

dmφ(d)=m; \sum_{d|m} \varphi(d)=m;
證明方法很多,現在給出一種證明方法:

m=1 m=1時顯然成立

m>1m=p1a1p2a2prar m>1 \\ m=p_{1}^{a_{1}} p_{2}^{a_{2}} \cdots p_{r}^{a_{r}}

dmφ(d)=e1=0a1e2=0a2erarφ(p1e1p2e2prer) \sum_{d|m} \varphi(d)=\sum_{e_{1}=0}^{a_{1}} \sum_{e_{2}=0}^{a_{2}} \cdots \sum_{e_{r}}^{a_{r}} \varphi(p_{1}^{e_{1}} p_{2}^{e_{2}} \cdots p_{r}^{e_{r}})

利用 (2)\ (2)式得:

dmφ(d)=(e1=0a1φ(p1e1))(e2=0a2φ(p2e2))(er=0arφ(prer)) \sum_{d|m} \varphi(d)=(\sum_{e_{1}=0}^{a_{1}} \varphi(p_{1}^{e_{1}}))(\sum_{e_{2}=0}^{a_{2}} \varphi(p_{2}^{e _{2}})) \cdots (\sum_{e_{r}=0}^{a_{r}} \varphi(p_{r}^{e_{r}}))

又根據定理1

ei=0aiφ(piei)=1+(p1)+(p2p)++(piaipiai1)=piai \sum_{e_{i}=0}^{a_{i}} \varphi(p_{i}^{e_{i}})=1+(p-1)+(p^{2}-p)+ \cdots +(p_{i}^{a_{i}}-p_{i}^{a_{i}-1})=p_{i}^{a_{i}}

dmφ(d)=(e1=0a1φ(p1e1))(e2=0a2φ(p2e2))(er=0arφ(prer))=p1a1p2a2prar=m \sum_{d|m} \varphi(d)=(\sum_{e_{1}=0}^{a_{1}} \varphi(p_{1}^{e_{1}}))(\sum_{e_{2}=0}^{a_{2}} \varphi(p_{2}^{e _{2}})) \cdots (\sum_{e_{r}=0}^{a_{r}} \varphi(p_{r}^{e_{r}}))=p_{1}^{a_{1}} p_{2}^{a_{2}} \cdots p_{r}^{a_{r}}=m

證畢

定理3

(a,m)=1aφ(m)1(modm) (a,m)=1 \Rightarrow a^{\varphi(m)} \equiv 1\pmod{m}

特別的

apa(mod  m)   ,   pQ a^{p} \equiv a (mod \,\,m)\,\,\,,\,\,\,p \in Q

我們設一組既約剩餘系 r1,r2,rφ(m)\ r_{1},r_{2}, \cdots r_{\varphi(m)},當 (a,m)=1\ (a,m)=1 ar1,ar2,arφ(m)\ ar_{1},ar_{2}, \cdots ar_{ \varphi(m)}也是一組既約剩餘系。可以得到:

j=1φ(m)rjj=1φ(m)(arj)aφ(m)j=1φ(m)rj(modm) \prod_{j=1}^{\varphi(m)}r_{j} \equiv \prod_{j=1}^{\varphi(m)}(ar_{j}) \equiv a^{\varphi(m)}\prod_{j=1}^{\varphi(m)} r_{j}\pmod{m}

去掉 j=1φ(m)rj\ \prod_{j=1}^{\varphi(m)} r_{j}

1aφ(m)(modm) 1 \equiv a^{\varphi(m)}\pmod{m}

證畢

我們在求逆元時就可以用這個公式:

a1aφ(m)1(modm) a^{-1} \equiv a^{\varphi(m)-1}\pmod{m}

對此我們可以引入一個新的函數: δm(a)\ \delta_{m}(a),讀音delta。函數定義爲最小的 d\ d滿足 ad1(mod  m)\ a^{d} \equiv 1 (mod \,\,m),這個函數不在此討論。

歐拉函數及其重要定理暫時就這麼多。

以上我們可以得出兩種求歐拉函數的方法。
1.歐拉函數線性篩
即計算每一個素數對後面的影響。是線性篩出歐拉函數值的算法。

int n;
int phi[100100],prime[100100],tot=0,ans=0;  
bool mark[100100];  
void getphi(int n)  
{  
   	phi[1]=1;
   	int i=2,j=1;
   	while(i<=n)
   	{
    	if(!mark[i])  
		{
			prime[++tot]=i;
			phi[i]=i-1;
        }
        j=1;
        while(j<=tot)  
       	{
    		if(i*prime[j]>n) break;  
          	mark[i*prime[j]]=1;
          	if(i%prime[j]==0)
          	{  
            	phi[i*prime[j]]=phi[i]*prime[j];break;  
          	}  
          	else phi[i*prime[j]]=phi[i]*(prime[j]-1);
          	++j;
       	}
       	++i;
   }  
}

2.通項公式
求出一個數的素因子及其指數。

int gphi(int n)
{
    int res=n,i=2;
    while(i*i<=n)
	{
        if(n%i==0){
            res=res-res/i;
            do{
                n/=i;
            }while(n%i==0);
        }
        ++i;
    }
    if(n>1) res=res-res/n;
    return res;
}

重要積性函數 =====\ = = = = = \Rightarrow莫比烏斯函數

 μ(x)\ \mu(x)即莫比烏斯函數。

μ(x)={1,                  x=1(1)r,      x=p1p2pr0,                  others \mu (x)= \begin{cases} 1,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,x=1 \\ (-1)^{r},\,\,\,\,\,\,x=p_{1} p_{2} \cdots p_{r} \\ 0,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,others \end{cases}

可以證明:
 (d1,d2)=1\ (d_{1},d_{2})=1時, μ(d1d2)=μ(d1)μ(d2)\ \mu(d_{1}d_{2})=\mu(d_{1}) \mu(d_{2})

定理

定理1

dmμ(d)=[1n]={1,         n=10,         n=0 \sum_{d|m} \mu(d)=\lbrack \frac{1}{n} \rbrack= \begin{cases} 1,\,\,\,\,\,\,\,\,\,n=1 \\ 0,\,\,\,\,\,\,\,\,\,n=0 \end{cases}

證明:
 n=1\ n=1時顯然成立。

 n=p1a1p2a2psas\ n=p_{1}^{a_{1}} p_{2}^{a_{2}} \cdots p_{s}^{a_{s}}
根據定義,我們從中取一定數量的素數,答案是完全確定的。

dmμ(d)=(s0)(s1)+(s2)+(1)s(ss)=i=0s(1)i(si) \sum_{d|m} \mu(d)= \binom{s}{0} - \binom{s}{1}+ \binom{s}{2} - \cdots +(-1)^{s} \binom{s}{s}= \sum_{i=0}^{s}(-1)^{i} \binom{s}{i}

根據二項式定理:

(a+b)s=(s0)as+(s1)as1b1+(ss)bs (a+b)^{s}=\binom{s}{0} a^{s}+\binom{s}{1} a^{s-1}b^{1} \cdots +\binom{s}{s} b^{s}

我們得到:

dmμ(d)=(11)s=0 \sum_{d|m} \mu(d)= (1-1)^{s}=0
證畢

定理2

 A\ A是一個有限的整數序列, K\ K是給定整數, Ad\ A_{d}表示 A\ A中被 d\ d整除的數組成的子序列。
 K=p1a1p2a2psas\ K=p_{1}^{a_{1}} p_{2}^{a_{2}} \cdots p_{s}^{a_{s}}
 Ad\ |A_{d}|表示這個子序列的長度。
在序列中與 K\ K既約的個數。

S(A;K)=aA,(a,K)=11=Ar=1s(1)ri1=1si2=1sir=1si1<i2<<irApi1pi2pir S(A;K) = \sum_{a \in A,(a,K)=1}1 =|A|-\sum_{r=1}^{s} (-1)^{r} \underbrace{ \sum_{i_{1}=1}^{s} \sum_{i_{2}=1}^{s} \cdots \sum_{i_{r}=1}^{s}}_{i_{1}<i_{2}< \cdots <i_{r}}|A_{p_{i_{1}} p_{i_{2}} \cdots p_{i_{r}}}|

證明:

定理1得知:

aA,(a,K)=11=aAd(a,K)μ(d)=dKμ(d)aA,da1=dKμ(d)Ad \sum_{a \in A,(a,K)=1}1=\sum_{a \in A} \sum_{d|(a,K)} \mu(d)=\sum_{d|K} \mu(d) \sum_{a \in A,d|a}1=\sum_{d|K} \mu(d)|A_{d}|
證畢

我們也可以得出兩種求莫比烏斯函數的方法。

莫比烏斯函數線性篩
和歐拉篩一樣,計算素數對後面的影響。

bool notp[100100];
int pnum,p[100100],n,u[100100];
void getmu(int n)
{
    memset(notp,0,sizeof notp);
	pnum=0;
    u[1]=1;
    int i=2,j=0;
    while(i<=n)
	{
        if(!notp[i])
		{
            p[pnum++]=i;
            u[i]=-1;
        }
        j=0;
        while((j<pnum)&&(i*p[j]<=n))
		{
            int k=i*p[j];
			notp[k]=1;
            if(i%p[j]==0)
			{
                u[k]=0;
                break;
            }
            u[k]=-u[i];
            ++j;
        }
        ++i;
    }
}

2.通項公式

int getmob(int a)
{
    int x=a,tmp=a;
    int cnt=0,now=0,j=2;
    while(j*j<=x)
	{
        now=0;
        if(x%j==0)
		{
            while(x%j==0)
			{
				++now;
				x/=j;
			}
            if(now>1) return 0;
            ++cnt;
        }
        ++j;
    }
    if(x!=1) ++cnt;
    return (cnt&1 ) ? -1 : 1;
}

莫比烏斯函數以後還有大用,在莫比烏斯變換中用處很大。

最後的最後

祝大家++RP

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章