莫比乌斯函数及反演
莫比乌斯函数\(\mu\)
定义
\[\mu(d) = \begin{cases}1 & n=1 \\ 0 & n含有一个以上的相同的质因子 \\ (-1)^k & n不同的质因子个数 \end{cases}
\]
性质
\(\mu\) 为积性函数,且:
\[\sum_{d \mid n} \mu(d) = \begin{cases} 1 & n=1 \\ 0 & n \neq 1 \end{cases}
\]
即:\(\sum_{d \mid n} \mu(d) = \varepsilon(n)\),\(\mu * 1 = \varepsilon\)(这里为狄利克雷卷积)
线性筛\(\mu\)
因为 \(\mu\) 为积性函数,因此可以考虑线性筛
void initMu()
{
mu[1]=1;
for(int i=2; i<=10000000; i++)
{
if(!vis[i])
pre[++sum]=i, mu[i]=-1;
for(int y=1; y<=sum; y++)
{
int j=pre[y];
if(i*j>10000000||i*j<0) break;
vis[i*j]=1;
if(i%j==0)
{
mu[i*j]=0;
break;
}
mu[i*j]=-mu[i];
}
}
}
莫比乌斯反演
\[[\gcd(i,j)=1] = \textstyle\sum_{d \mid \gcd(i,j)} \mu(d)
\]
用法
\[\begin{aligned}
\ \sum_{i,j} [\gcd(i,j)=1] &=\sum_{i,j} \sum_{d \mid \gcd(i,j)} \mu(d) \\
&=\sum_{d=1}^{n/p} \mu(d) \sum_{i,j}[d \mid gcd(i,j)] \\
&=\sum_{d=1}^{n/p} \mu(d) \lfloor \frac{n}{d} \rfloor \lfloor \frac{m}{d} \rfloor
\end{aligned}
\]