积性函数专题

定义

(;)
若一个数论函数(f(n))满足,
(gcd(a,b)=1)时:

[f(ab)=f(a) imes f(b) ]

则称(f(n))是一个积性函数。
特别地,若不要求(gcd(a,b)=1),则称(f(n)是一个完全积性函数)
(;)
(;)

几个常见的积性函数

[phi (n)=sum_{i=1}^n [gcd(n,i)=1] ]

[e.g. ;; phi (6)=2 ]

[mu (n)= egin{cases} 1;;;;;;;;;n=1 \ (-1)^r;;n=p_1^{k_1} imes p_2^{k_2} imes cdots imes p_r^{k_r};;;(k_1=k_2=cdots =k_r=1) \ 0;;;;;;;;;other end{cases} ]

[e.g. ;; mu (30)=-1 ]

[I(n)=1 ]

[epsilon (n)=[n=1] ]

[id(n)=n ]

(;)
(;)

狄利克雷卷积

定义

[(f*g)(n)=sum_{d|n} f(d);g(frac{n}{d}) ]

性质

交换律

[f*g=g*f ]

结合律

[(f*g)*h=f*(g*h) ]

分配律

[(f+g)*h=f*h+g*h ]

三个重要的式子

[mu * I=epsilon ]

[phi * I=id ]

[mu * id = phi ]

证明

[mu * I=epsilon ]

[(mu * I)(n)=sum_{d|n} mu (d);I(frac{n}{d}) ]

[=sum_{d|n} mu (d) ]

(n=1)时,(mu (1)=epsilon (1) =1),显然成立。
(n>1)时,(epsilon (n)=0),因此我们只需证明:

[sum_{d|n} mu (d)=0 ]

不妨设(n=p_1^{k_1} imes p_2^{k_2} imes cdots imes p_r^{k_r})
则对于任意的(d|n)(d=p_1^{alpha_1} imes p_2^{alpha_2} imes cdots imes p_t^{alpha_t};;;(0leq alpha_i leq k_i,t leq r))
(alpha_i >1),则(mu (d)=0)(根据定义)
因此,(mu (d)= pm 1)当且仅当(alpha_1=alpha_2=cdots = alpha_t=1)
你想到了什么?
既然我们钦定了(alpha_i=1)。这其实就是从(r)个数中选(t)个数,当(t)为奇数时,(mu (d)=-1),当(t)为偶数时,(mu (d)=1)
因此:

[sum_{d|n} mu (d) ]

[=C_r^0-C_r^1+C_r^2 cdots =0 ]

(Q.E.D)
如果不明白为什么上面式子等于零,可以看我的博客(组合数的性质) https://www.cnblogs.com/czyty114/p/12666932.html
(;)
(;)

[phi * I= id ]

[(phi * I)(n)=sum_{d|n} phi (d) I(frac{n}{d}) ]

[=sum_{d|n} phi (d)=id(n)=n ]

如何证明:(sum_{d|n} phi (d)=n)
一个有趣的做法。
现在给定(n)个分数(;; frac{1}{n},frac{2}{n} cdots frac{n}{n})
将它们都化为最简分数,我们发现化为(frac{b}{a})当且仅当(a|n)(a)(b)互质。
因此以(a)为分母的分数有(phi (a))
所以:

[sum_{d|n} phi (d)=n ]

(Q.E.D)
(;)
(;)

[mu * id = phi ]

[(mu * id)(n) ]

[=sum_{d|n} mu (d) id(frac{n}{d}) ]

让我们回顾一下,欧拉函数本质上是怎么求的?
我们首先假设(1-n)的数都与(n)互质(当然这是不可能的)
由于互质就是满足:(gcd(k,n)=1),所以我们只需满足(gcd(k,n)>1)(k)就不与(n)互质。
所以枚举(n)的因子(d;;(1<dgeq n)),则(1-n)中是(d)的倍数的数有(frac{n}{d}),但如果单纯的减可能会算重,比如说:(6)可能会被(2,3)减两次,所以我们要加回来。
同时你又发现,把(d)质因数分解,(d=p_1^{alpha_1} imes p_2^{alpha_2} imes cdots imes p_r^{alpha_r})。若(alpha_i>1),则用(d)减去的数肯定就会被它的因数减过,并被刚好减一次(自己仔细想想)。所以我们也可以忽略这种情况,不加也不减。
所以你可以发现:这其实就是一个容斥原理:
(phi (n)= sum_{d|n} (-1)^r imes frac{n}{d})
所以

[phi (n)= sum_{d|n} mu (d) id(frac{n}{d}) ]

(Q.E.D)
(;)
(;)

模板

(mu (1-n) ,phi (1-n);;;;; n leq 10^7)
欧拉筛求。
(Code:)

phi[1]=1;mu[1]=1;
for(int i=2;i<=n;i++)
{
    if(!st[i])
    {
        prime[++cnt]=i;
        //质数的情况十分简单 
        phi[i]=i-1;
	mu[i]=-1; 
    }
    for(int j=1;j<=cnt&&i*prime[j]<=n;j++)
    {
        st[i*prime[j]]=1;
    	if(i%prime[j])//prime[j]为i的最小质因子 
    	{
    		phi[i*prime[j]]=phi[i]*phi[prime[j]];
		mu[i*prime[j]]=mu[i]*mu[prime[j]];
		//积性函数的基本性质 
	} 
	else
	{
		phi[i*prime[j]]=phi[i]*prime[j];
		mu[i*prime[j]]=0;
		break; 
		//根据各自的定义推导 
	} 
}
原文地址:https://www.cnblogs.com/czyty114/p/12707134.html