莫比乌斯反演也是反演定理的一种
前面学了二项式反演定理
那莫比乌斯反演定理与二项式反演定理一样,不求甚解,只求会用
μ(x)是莫比乌斯函数,它是这样计算的
μ(1) = 1
x = p1 * p2 * p3 ……*pk(x由k个不同的质数组成)则μ(x) = (-1)^k
其他情况,μ (x) = 0
比如
30 = 2 * 3 * 5
μ(30) = (-1)^3
4 = 2 * 2
μ(4) = 0
对于μ(d)函数,它有如下的常见性质:
(1)对任意正整数n有
(2)对任意正整数n有
线筛的预处理模板 复杂度(O(n))
#include<cstring>
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#define ll long long
using namespace std;
const int N=1e5+10;
int tot=0;
ll mu[N],vis[N],prime[N];
void init()
{
mu[1]=1;
for(int i=2;i<N;i++)
{
if(!vis[i])
{
prime[++tot]=i;
mu[i]=-1;
}
for(int j=1;j<=tot&&i*prime[j]<N;j++)
{
vis[i*prime[j]]=1;
if(i%prime[j]) mu[i*prime[j]]=-mu[i];
else
{
mu[i*prime[j]]=0;
break;
}
}
}
}
相关练习
待更新...