- 莫比乌斯函数如下
- 于是有如下两条性质
- 第一个性质用组合数可以很方便得到
- 莫比乌斯反演如下
如果有$f(n)=\sum_{d|n}^{}{g(d)}$ 那么$g(n)=\sum_{d|n}^{}{\mu(d)\cdot f(\frac nd)}$ - $\sum_{d|n}^{}{\mu(d)\cdot f(\frac nd)}=\sum_{d|n}^{}{\mu(d)\cdot \sum_{k| \frac nd}^{}g(k)}$
- $=\sum_{d|n}^{}{\sum_{k| \frac nd}^{}{\mu(d) \cdot g(k)}}$
- 显然其实就是枚举$d\cdot k|n$
- 即$=\sum_{k|n}^{}{\sum_{d| \frac nk}^{}{\mu(d) \cdot g(k)}}$
- 由性质1可得该式$=g(n)$
- (其实我每次都没构造函数,我直接推的2333…)
- 上一段线筛莫比乌斯函数代码
1
2
3
4
5
6
7
8
9
10
11 void get_mu(int n){
mu[1]=1;
for(int i=2;i<=n;++i){
if(!vis[i])mu[i]=-1,p[++cnt]=i;
for(int j=1;j<=cnt&&i<=n/p[j];++j){
vis[i*p[j]]=1;
if(i%p[j]==0)break;
mu[i*p[j]]-=mu[i];
}
}
}