莫比乌斯函数
对于函数F(n)=Σd∣nf(d)F(n)=\Sigma_{d|n}f(d)F(n)=Σd∣nf(d) (其中d∣nd|nd∣n表示ddd能够被nnn整除),根据定义有
F(1)=f(1)F(1)=f(1)F(1)=f(1)
F(2)=f(1)+f(2)F(2)=f(1)+f(2)F(2)=f(1)+f(2)
F(3)=f(1)+f(3)F(3)=f(1)+f(3)F(3)=f(1)+f(3)
F(4)=f(1)+f(2)+f(4)F(4)=f(1)+f(2)+f(4)F(4)=f(1)+f(2)+f(4)
F(5)=f(1)+f(5)F(5)=f(1)+f(5)F(5)=f(1)+f(5)
F(6)=f(1)+f(2)+f(3)+f(6)F(6)=f(1)+f(2)+f(3)+f(6)F(6)=f(1)+f(2)+f(3)+f(6)
F(7)=f(1)+f(7)F(7)=f(1)+f(7)F(7)=f(1)+f(7)
F(8)=f(1)+f(2)+f(4)+f(8)F(8)=f(1)+f(2)+f(4)+f(8)F(8)=f(1)+f(2)+f(4)+f(8)
于是
f(1)=F(1)f(1)=F(1)f(1)=F(1)
f(2)=F(2)−F(1)f(2)=F(2)-F(1)f(2)=F(2)−F(1)
f(3)=F(3)−F(1)f(3)=F(3)-F(1)f(3)=F(3)−F(1)
f(4)=F(4)−F(2)f(4)=F(4)-F(2)f(4)=F(4)−F(2)
f(5)=F(5)−F(1)f(5)=F(5)-F(1)f(5)=F(5)−F(1)
f(6)=F(6)−F(3)−F(2)+F(1)f(6)=F(6)-F(3)-F(2)+F(1)f(6)=F(6)−F(3)−F(2)+F(1)
f(7)=F(7)−F(1)f(7)=F(7)-F(1)f(7)=F(7)−F(1)
f(8)=F(8)−F(4)f(8)=F(8)-F(4)f(8)=F(8)−F(4)
我们可以由F(n)=Σd∣nf(d)F(n)=\Sigma_{d|n}f(d)F(n)=Σd∣nf(d) ,如果已知F(n)F(n)F(n)我们就可以反演推出f(n)f(n)f(n)
公式:
F(n)=Σd∣nf(d)⇒ f(n)=Σd∣nμ(d)F(nd)F(n)=\Sigma_{d|n}f(d)\Rightarrow\ f(n)=\Sigma_{d|n}\mu(d)F(\frac{n}{d})
F(n)=Σd∣nf(d)⇒ f(n)=Σd∣nμ(d)F(dn)
其中的μ(d)\mu(d)μ(d)即为莫比乌斯函数,定义为
- 若d=1d=1d=1则μ(d)=1\mu(d)=1μ(d)=1
- 若d=p1p2p3 ⋯ pkd=p_{1}p_{2}p_{3}\ \cdots\ p_{k}d=p1p2p3 ⋯ pk,其中pip_{i}pi为互异素数,则μ(d)=(−1)k\mu(d)=(-1)^{k}μ(d)=(−1)k
- 其他情况μ(d)=0\mu(d)=0μ(d)=0
莫比乌斯函数性质
1.对于任意正整数nnn有
Σd∣nμ(d)={1n=10n>1
\Sigma_{d|n}\mu(d)=
\begin{cases}
1 & \text{n=1}\\
0 & \text{n>1}
\end{cases}
Σd∣nμ(d)={10n=1n>1
2.对于任意正整数nnn有
Σd∣nμ(d)d=φ(n)n
\Sigma_{d|n}\frac{\mu(d)}{d}=\frac{\varphi(n)}{n}
Σd∣ndμ(d)=nφ(n)
其中的φ(n)\varphi(n)φ(n)是欧拉函数
3.μ(d)为积性函数\mu(d)为积性函数μ(d)为积性函数,也因为它为积性函数所以可以用线性筛求出
求莫比乌斯函数代码
int prime[maxn],mu[maxn],tot = 0;
bool vis[maxn];
void Mobius(int n){
me(vis,false);
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]] = true;
if(i%prime[j] == 0){
mu[i*prime[j]] = 0;
break;
}
mu[i*prime[j]] = -mu[i];
}
}
}
莫比乌斯反演
公式:
F(n)=Σd∣nf(d)⇒ f(n)=Σd∣nμ(d)F(nd)F(n)=\Sigma_{d|n}f(d)\Rightarrow\ f(n)=\Sigma_{d|n}\mu(d)F(\frac{n}{d})F(n)=Σd∣nf(d)⇒ f(n)=Σd∣nμ(d)F(dn)
F(n)=Σn∣df(d)⇒ f(n)=Σn∣dμ(dn)F(d)F(n)=\Sigma_{n|d}f(d)\Rightarrow\ f(n)=\Sigma_{n|d}\mu(\frac{d}{n})F(d)F(n)=Σn∣df(d)⇒ f(n)=Σn∣dμ(nd)F(d)
证明:
f(n)=Σd∣nμ(d)F(nd)=Σd∣nμ(d)Σk∣ndf(k)=Σk∣nf(k)Σd∣nkμ(d)f(n)=\Sigma_{d|n}\mu(d)F(\frac{n}{d})=\Sigma_{d|n}\mu(d)\Sigma_{k|\frac{n}{d}}f(k)=\Sigma_{k|n}f(k)\Sigma_{d|\frac{n}{k}}\mu(d)f(n)=Σd∣nμ(d)F(dn)=Σd∣nμ(d)Σk∣dnf(k)=Σk∣nf(k)Σd∣knμ(d)
因为:
Σd∣nμ(d)={1n=10n>1\Sigma_{d|n}\mu(d)=\begin{cases}1 & \text{n=1}\\0 & \text{n>1}\end{cases}Σd∣nμ(d)={10n=1n>1
所以只有n=kn=kn=k:
Σk∣nf(k)Σd∣nkμ(d)=f(k)=f(n)\Sigma_{k|n}f(k)\Sigma_{d|\frac{n}{k}}\mu(d)=f(k)=f(n)Σk∣nf(k)Σd∣knμ(d)=f(k)=f(n)
做题方法(套路):
一般题目都是将其转换为gcd(x,y)=1gcd(x,y)=1gcd(x,y)=1的形式求解
令f(x)=∑i=1n∑j=1m[gcd(i,j)==x]f(x)=\sum_{i=1}^{n}\sum_{j=1}^{m}[gcd(i,j)==x]f(x)=i=1∑nj=1∑m[gcd(i,j)==x]
F(x)=∑x∣df(d)F(x)=\sum_{x|d}^{}f(d)F(x)=x∣d∑f(d)
所以
F(x)=∑x∣d∑i=1n∑j=1m[gcd(i,j)==d]=∑i=1n∑j=1m[x∣gcd(i,j)]=⌊nx⌋⌊mx⌋F(x)=\sum_{x|d}^{}\sum_{i=1}^{n}\sum_{j=1}^{m}[gcd(i,j)==d]=\sum_{i=1}^{n}\sum_{j=1}^{m}[x|gcd(i,j)]=\lfloor\cfrac{n}{x}\rfloor\lfloor\cfrac{m}{x}\rfloorF(x)=x∣d∑i=1∑nj=1∑m[gcd(i,j)==d]=i=1∑nj=1∑m[x∣gcd(i,j)]=⌊xn⌋⌊xm⌋
从而
f(x)=∑x∣dμ(dx)F(d)=∑x∣dμ(dx)⌊nd⌋⌊md⌋f(x)=\sum_{x|d}^{}\mu(\cfrac{d}{x})F(d)=\sum_{x|d}^{}\mu(\cfrac{d}{x})\lfloor\cfrac{n}{d}\rfloor\lfloor\cfrac{m}{d}\rfloorf(x)=x∣d∑μ(xd)F(d)=x∣d∑μ(xd)⌊dn⌋⌊dm⌋
一般求f(1)f(1)f(1)
f(1)=∑d=1min(n,m)μ(d)⌊nd⌋⌊md⌋f(1)=\sum_{d=1}^{min(n,m)}\mu(d)\lfloor\cfrac{n}{d}\rfloor\lfloor\cfrac{m}{d}\rfloorf(1)=d=1∑min(n,m)μ(d)⌊dn⌋⌊dm⌋
套路2:
由莫比乌斯定理得
[gcd(i,j)==1]=∑d∣gcd(i,j)μ(d)=∑d∣i,d∣jμ(d)[gcd(i,j)==1]=\sum_{d|gcd(i,j)}^{}\mu(d)=\sum_{d|i,d|j}^{}\mu(d)[gcd(i,j)==1]=d∣gcd(i,j)∑μ(d)=d∣i,d∣j∑μ(d)
所以
ans=∑i=1n∑j=1m∑d∣i,d∣jμ(d)ans=\sum_{i=1}^{n}\sum_{j=1}^{m}\sum_{d|i,d|j}^{}\mu(d)ans=i=1∑nj=1∑md∣i,d∣j∑μ(d)
提贡献:
ans=∑d=1min(n,m)μ(d)∑d∣in∑d∣jm1ans=\sum_{d=1}^{min(n,m)}\mu(d)\sum_{d|i}^{n}\sum_{d|j}^{m}1ans=d=1∑min(n,m)μ(d)d∣i∑nd∣j∑m1
即
ans=∑d=1min(n,m)μ(d)⌊nd⌋⌊nd⌋ans=\sum_{d=1}^{min(n,m)}\mu(d)\lfloor\cfrac{n}{d}\rfloor\lfloor\cfrac{n}{d}\rfloorans=d=1∑min(n,m)μ(d)⌊dn⌋⌊dn⌋
小性质:
d(nm)=∑i∣n∑j∣m[gcd(i,j)==1]d(nm)=\sum_{i|n}\sum_{j|m}[gcd(i,j)==1]d(nm)=i∣n∑j∣m∑[gcd(i,j)==1]
其中d(x)表示x的约数的个数d(x)表示x的约数的个数d(x)表示x的约数的个数