定义
(;)
若一个数论函数(f(n))满足,
当(gcd(a,b)=1)时:
则称(f(n))是一个积性函数。
特别地,若不要求(gcd(a,b)=1),则称(f(n)是一个完全积性函数)
(;)
(;)
几个常见的积性函数
(;)
(;)
狄利克雷卷积
定义
性质
交换律
结合律
分配律
三个重要的式子
证明
当(n=1)时,(mu (1)=epsilon (1) =1),显然成立。
当(n>1)时,(epsilon (n)=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)
因此:
(Q.E.D)
如果不明白为什么上面式子等于零,可以看我的博客(组合数的性质) https://www.cnblogs.com/czyty114/p/12666932.html
(;)
(;)
如何证明:(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))个
所以:
(Q.E.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})
所以
(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;
//根据各自的定义推导
}
}