关于积性函数的一些理解
首先,要Orz鏼爷。。http://jcvb.is-programmer.com/posts/41846.html
谈谈积性函数吧。。
百度百科的定义:
完全积性函数指所有对于任何a,b都有性质$f(ab)=f(a)f(b)$的函数。
在数论中的积性函数:对于正整数n的一个算术函数$f(n)$,若$f(1)=1$,且当a,b互质时$f(ab)=f(a)f(b)$,在数论上就称它为积性函数。若对于某积性函数$f(n)$,就算a, b不互质,也有$f(ab)=f(a)f(b)$,则称它为完全积性的。
以下均是积性函数:(度娘~)
$\phi(n)$-欧拉函数,
$\mu(n)$-莫比乌斯函数,关于非平方数的质因子数目
$gcd(n,k)$-最大公因子,当k固定的情况
$d(n)$-n的正因子数目
$σ(n)$-n的所有正因子之和
$1(n)$-不变的函数,定义为$1(n)=1$(完全积性)
$id(n)$-单位函数,定义为$id(n)=n$(完全积性)
$idk(n)$-幂函数,对于任何复数、实数k,定义为$idk(n)=n^{k}$(完全积性)
$\varepsilon(n)$-定义为:若$n=1$,$\varepsilon(n)=1$;若$n>1$,$\varepsilon(n)=0$。别称为“对于狄利克雷卷积的乘法单位”(完全积性)
$\lambda(n)$-刘维尔函数,关于能整除n的质因子的数目
$\gamma(n)$,定义为$\gamma(n)=(-1)^{\omega (n)}$,在此加性函数$\omega (n)$是不同能整除n的质数的数目
另外,所有狄利克雷特征均是完全积性的。
积性函数有几个性质:
1.若$n=p_{1}^{a_{1}}p_{2}^{a_{2}}p_{3}^{a_{3}}...p_{n}^{a_{n}}$,那么$f(n)=f(p_{1}^{a_{1}})f(p_{2}^{a_{2}})f(p_{3}^{a_{3}})...f(p_{n}^{a_{n}})$。
2.若$f$为积性函数且有$f(p^{n})=f^{n}(p)$,那么$f$为完全积性函数。
狄利克雷卷积:
对于两个算术函数$f$和$g$,定义其狄利克雷卷积为$f*g$,其中$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*g+f*h$。
若$f$,$g$是积性函数,那么$f*g$也是积性函数。
狄利克雷卷积可以用$O(nlogn)$的筛法预处理出来。
对于积性函数,还有两个很重要的性质:
$\sum_{d|n}\mu(d)=[n==1]$,即$1*\mu=\varepsilon$。
$\sum_{d|n}\phi(d)=n$,即$1*\phi=id$。
积性函数可以用$O(n)$的时间线性筛求出,以下是筛素数,$\mu(n),\phi(n)$的代码:
1 vis[0]=vis[1]=1,mu[1]=1,phi[1]=1; 2 for (RG int i=2;i<=N;++i){ 3 if (!vis[i]) mu[i]=-1,phi[i]=i-1,prime[++cnt]=i; 4 for (RG int j=1,k=i*prime[j];j<=cnt && k<=N;++j,k=i*prime[j]){ 5 vis[k]=1; 6 if (!(i%prime[j])){ mu[k]=0,phi[k]=phi[i]*prime[j]; break; } 7 else mu[k]=-mu[i],phi[k]=phi[i]*phi[prime[j]]; 8 } 9 }
可以发现,线性筛分为3部分:
1.n本身是素数,这个根据积性函数的定义可得,很容易求。
2.i%prime[j]!=0,这个也是根据积性函数的性质可得,即$f(a)f(b)=f(ab)$。
3.i%prime[j]==0,这个就很麻烦了,可能需要找规律。据ljh2000神犇的说法,可以用2,4,8或3,9,27这些数来找。。
总之就是一句话:打表找规律!!!
先打素数,找素数规律,再找2,4,8和3,9,27,找出规律!然后就可以乱搞线性筛了!!!
然后,线性筛并不一定只能筛积性函数,有些具有特殊性质的函数也可以用线性筛。
以上是预备知识,可以为莫比乌斯反演做一些铺垫吧。。