所谓莫比乌斯反演,就是莫比乌斯进行的反演
(逃)
前言
在一些需要整除的式子和 gcd , lcm \gcd,\operatorname{lcm} gcd,lcm 等问题中发挥作用。
整除分块
整除分块是莫反的必要前置。
结论:
对于 i ≤ n i\le n i≤n,满足 ⌊ n x ⌋ = ⌊ n i ⌋ \lfloor\dfrac{n}{x}\rfloor=\lfloor\dfrac{n}{i}\rfloor ⌊xn⌋=⌊in⌋ 的最大的 x x x 为 ⌊ n ⌊ n i ⌋ ⌋ \lfloor\dfrac{n}{\lfloor\frac{n}{i}\rfloor}\rfloor ⌊⌊in⌋n⌋。
证明:
设
k
=
⌊
n
i
⌋
k=\lfloor\dfrac{n}{i}\rfloor
k=⌊in⌋,那么就有
n
=
i
⋅
k
+
p
(
0
≤
p
<
i
,
p
=
n
m
o
d
i
)
n=i\cdot k+p\pod{0\le p<i,p=n\bmod i}
n=i⋅k+p(0≤p<i,p=nmodi),设
x
=
i
+
d
x=i+d
x=i+d,同理有
n
=
(
i
+
d
)
⋅
k
+
p
′
(
0
≤
p
′
<
x
,
p
′
=
n
m
o
d
x
)
n=(i+d)\cdot k+p'\pod{0\le p'<x,p'=n\bmod x}
n=(i+d)⋅k+p′(0≤p′<x,p′=nmodx),化简得
p
′
=
p
−
d
k
p'=p-dk
p′=p−dk,由于
p
′
>
0
p'>0
p′>0,有
d
<
⌊
p
k
⌋
d<\lfloor\dfrac{p}{k}\rfloor
d<⌊kp⌋。
那么就有:
x
m
a
x
=
i
+
d
m
a
x
x_{max}=i+d_{max}
xmax=i+dmax
=
i
+
⌊
p
k
⌋
=i+\lfloor\frac{p}{k}\rfloor
=i+⌊kp⌋
=
i
+
⌊
n
m
o
d
i
k
⌋
=i+\lfloor\frac{n\bmod i}{k}\rfloor
=i+⌊knmodi⌋
=
⌊
i
+
n
−
⌊
n
i
⌋
⋅
i
⌊
n
i
⌋
⌋
=\lfloor i+\frac{n-\lfloor \dfrac{n}{i}\rfloor\cdot i}{\lfloor\dfrac{n}{i}\rfloor}\rfloor
=⌊i+⌊in⌋n−⌊in⌋⋅i⌋
=
⌊
n
⌊
n
i
⌋
⌋
=\lfloor \frac{n}{\lfloor\dfrac{n}{i}\rfloor}\rfloor
=⌊⌊in⌋n⌋
证毕。
代码
(计算因数个数的前缀和)
ll calc(ll x){
if(x<=0) return 0
ll ans=0;
for(ll l=1,r;l<=x;l=r+1){
r=x/(x/l);
(ans+=1ll*(r-l+1)*(x/l))%=mod;
}
return ans;
}
积性函数
定义:
如果 f : Z + → C f:\mathbb{Z^+}\to \mathbb{C} f:Z+→C,则称 f ( n ) f(n) f(n) 为一个数论函数。
如果 f ( n ) f(n) f(n) 为一个数论函数,且对于 p ⊥ q p\perp q p⊥q, f ( p q ) = f ( p ) f ( q ) f(pq)=f(p)f(q) f(pq)=f(p)f(q),则称 f ( n ) f(n) f(n) 为一个积性函数。
如果 f ( n ) f(n) f(n) 为一个积性函数,且对于任意 p , q p,q p,q, f ( p q ) = f ( p ) f ( q ) f(pq)=f(p)f(q) f(pq)=f(p)f(q),则称 f ( n ) f(n) f(n) 为一个完全积性函数。
一个重要的性质:
对于 p ⊥ q , d 1 ∣ p , d 2 ∣ 1 p\perp q,d_1|p,d_2|1 p⊥q,d1∣p,d2∣1,则有 ( d 1 d 2 ) ∣ ( p q ) (d_1d_2)|(pq) (d1d2)∣(pq)
证明:结合基本算数定理, d 1 , d 2 d_1,d_2 d1,d2 必然没有共同因子,相乘后各个因子的次数还是不超过原来的 p , q p,q p,q 对应位置的次数。
常见的积性函数:
- 除数函数: σ k ( n ) = ∑ d ∣ n d k \sigma_k(n)=\sum_{d|n}d^k σk(n)=∑d∣ndk。
证明:
p ⊥ q → σ k ( p ) σ k ( q ) = ( ∑ d 1 ∣ p d 1 k ) ( ∑ d 2 ∣ q d 2 k ) = ∑ ( d 1 d 2 ) ∣ ( p q ) ( d 1 d 2 ) k = σ k ( p q ) p\perp q\to\sigma_k(p)\sigma_k(q)=(\sum_{d_1|p}d_1^k)(\sum_{d_2|q}d_2^k)=\sum_{(d_1d_2)|(pq)}(d_1d_2)^k=\sigma_k(pq) p⊥q→σk(p)σk(q)=(∑d1∣pd1k)(∑d2∣qd2k)=∑(d1d2)∣(pq)(d1d2)k=σk(pq)。
-
约数个数函数: τ ( n ) = σ 0 ( n ) = ∑ d ∣ n 1 \tau(n)=\sigma_0(n)=\sum_{d|n}1 τ(n)=σ0(n)=∑d∣n1。
-
约数和函数: σ ( n ) = ∑ d ∣ n d \sigma(n)=\sum_{d|n}d σ(n)=∑d∣nd。
-
欧拉函数: φ ( n ) = ∑ i = 1 n [ gcd ( i , n ) = 1 ] \varphi(n)=\sum_{i=1}^n[\gcd(i,n)=1] φ(n)=∑i=1n[gcd(i,n)=1]。
证明:
p ⊥ q → φ ( p ) φ k ( q ) = ( p ∏ a ∈ p r i m e , a ∣ p a − 1 a ) ( q ∏ b ∈ p r i m e , b ∣ q b − 1 b ) = p q ∏ c ∈ p r i m e , c ∣ p q c − 1 c = φ ( p q ) p\perp q\to\varphi_(p)\varphi_k(q)=(p\prod_{a\in prime,a|p}\dfrac{a-1}{a})(q\prod_{b\in prime,b|q}\dfrac{b-1}{b})=pq\prod_{c\in prime,c|pq}\dfrac{c-1}{c}=\varphi(pq) p⊥q→φ(p)φk(q)=(p∏a∈prime,a∣paa−1)(q∏b∈prime,b∣qbb−1)=pq∏c∈prime,c∣pqcc−1=φ(pq)
性质: φ ( n ) = ∑ i = 1 n [ gcd ( i , n ) = 1 ] ∗ i = φ ( n ) + [ n = = 1 ] 2 \varphi(n)=\sum_{i=1}^n[\gcd(i,n)=1]*i=\dfrac{\varphi(n)+[n==1]}{2} φ(n)=∑i=1n[gcd(i,n)=1]∗i=2φ(n)+[n==1]。
证明:对于 gcd ( d , n ) = 1 \gcd(d,n)=1 gcd(d,n)=1,同样有 gcd ( n − d , n ) = 1 \gcd(n-d,n)=1 gcd(n−d,n)=1,所有和 n n n 互质的数都是对称分布的。
- 莫比乌斯函数: μ ( n ) \mu(n) μ(n), μ ( 1 ) = 1 \mu(1)=1 μ(1)=1,对于无平方因子的数 n = ∏ i k p i n=\prod_i^k p_i n=∏ikpi, μ ( n ) = ( − 1 ) k \mu(n)=(-1)^k μ(n)=(−1)k;对于有平方因子的数 n n n, μ ( n ) = 0 \mu(n)=0 μ(n)=0。
- 元函数: e ( n ) = [ n = 1 ] e(n)=[n=1] e(n)=[n=1]。完全积性。
- 恒等函数: I ( n ) = 1 I(n)=1 I(n)=1。完全积性。也可写作 1 ( n ) = 1 1(n)=1 1(n)=1。
- 单位函数: i d ( n ) = n id(n)=n id(n)=n。完全积性。
- 恒等函数: i d k ( n ) = n k id^k(n)=n^k idk(n)=nk。完全积性。
线性筛
利用线性筛筛出 μ \mu μ 这样的积性函数。
int mu[N];
int p[N],tot,vis[N];
void init(int n){
mu[1]=1;
for(int i=2;i<=n;i++){
if(!vis[i]) vis[i]=1,mu[i]=-1,p[++tot]=i;
for(int j=1;j<=tot&&p[j]<=n/i;j++){
vis[i*p[j]]=1;
if(i%p[j]==0){
mu[i*p[j]]=0;break;
}
mu[i*p[j]]=-mu[i];
}
}
}
狄利克雷卷积
定义:
对于数论函数 f , g f,g f,g, h ( n ) = f ∗ g = ∑ d ∣ n f ( d ) g ( n d ) h(n)=f*g=\sum_{d|n}f(d)g(\dfrac{n}{d}) h(n)=f∗g=∑d∣nf(d)g(dn) 叫做 f , g f,g f,g 的狄利克雷卷积。
狄利克雷卷积可以理解为乘法意义上的卷积,满足交换律、分配律,结合律。
若 f , g f,g f,g 均为积性函数,那么 h = f ∗ g h=f*g h=f∗g 也是积性函数。
证明: p ⊥ q → h ( p ) h ( q ) = ( ∑ d 1 ∣ p f ( d 1 ) g ( p d 1 ) ) ( ∑ d 2 ∣ q f ( d 2 ) g ( q d 2 ) ) = ∑ ( d 1 d 2 ) ∣ ( p q ) f ( d 1 ) f ( d 2 ) g ( p d 1 ) g ( q d 2 ) = ∑ ( d 1 d 2 ) ∣ ( p q ) f ( d 1 d 2 ) g ( p q d 1 d 2 ) = h ( p q ) p\perp q\to h(p)h(q)=(\sum_{d_1|p}f(d_1)g(\frac{p}{d_1}))(\sum_{d_2|q}f(d_2)g(\frac{q}{d_2}))=\sum_{(d_1d_2)|(pq)}f(d_1)f(d_2)g(\dfrac{p}{d_1})g(\dfrac{q}{d_2})=\sum_{(d_1d_2)|(pq)}f(d_1d_2)g(\dfrac{pq}{d_1d_2})=h(pq) p⊥q→h(p)h(q)=(∑d1∣pf(d1)g(d1p))(∑d2∣qf(d2)g(d2q))=∑(d1d2)∣(pq)f(d1)f(d2)g(d1p)g(d2q)=∑(d1d2)∣(pq)f(d1d2)g(d1d2pq)=h(pq)
1
∗
1
=
τ
1*1=\tau
1∗1=τ
1
∗
i
d
=
σ
1*id=\sigma
1∗id=σ
证明:直接展开即可得。
∑ d ∣ n μ ( d ) = [ n = = 1 ] \sum_{d|n}\mu(d)=[n==1] ∑d∣nμ(d)=[n==1],即 μ ∗ 1 = e \mu*1=e μ∗1=e,两者互为逆元。
证明: μ ( 1 ) = 0 \mu(1)=0 μ(1)=0 显然成立,对于 n > 1 n>1 n>1,由于含平方因子的 μ \mu μ 均为0,只需要考虑 n n n 所有不含平方因子的因数。
设 n n n 有 m m m 个质因子,从这些质因子中任意选择(每项最多一个)构成因数,就有: ∑ d ∣ n μ ( d ) = ∑ i = 0 m ( m i ) ( − 1 ) i = ( 1 − 1 ) m = 0 \sum_{d|n}\mu(d)=\sum_{i=0}^m\binom{m}{i}(-1)^i=(1-1)^m=0 ∑d∣nμ(d)=∑i=0m(im)(−1)i=(1−1)m=0。
[ gcd ( i , j ) = 1 ] = ∑ d ∣ gcd ( i , j ) μ ( d ) [\gcd(i,j)=1]=\sum_{d|\gcd(i,j)}\mu(d) [gcd(i,j)=1]=∑d∣gcd(i,j)μ(d)
证明:直接令上一个式子 ∑ d ∣ n μ ( d ) = [ n = = 1 ] \sum_{d|n}\mu(d)=[n==1] ∑d∣nμ(d)=[n==1] 的 n = gcd ( i , j ) n=\gcd(i,j) n=gcd(i,j) 即可得。
φ = μ ∗ i d \varphi=\mu*id φ=μ∗id
证明: ( μ ∗ i d ) ( n ) = ∑ d ∣ n μ ( d ) n d (\mu*id)(n)=\sum_{d|n}\mu(d)\dfrac{n}{d} (μ∗id)(n)=∑d∣nμ(d)dn,右边的式子就可以理解成容斥筛掉所有和 n n n 不互质的数。
i d = φ ∗ 1 , n = i d ( n ) = ∑ d ∣ n φ ( n ) id=\varphi*1,n=id(n)=\sum_{d|n}\varphi(n) id=φ∗1,n=id(n)=∑d∣nφ(n)
证明: i d = i d ∗ e = i d ∗ μ ∗ 1 = φ ∗ 1 id=id*e=id*\mu*1=\varphi*1 id=id∗e=id∗μ∗1=φ∗1
莫比乌斯反演
若 g ( n ) = ∑ d ∣ n f ( d ) g(n)=\sum_{d|n}f(d) g(n)=∑d∣nf(d),那么 f ( n ) = ∑ d ∣ n μ ( d ) g ( n d ) f(n)=\sum_{d|n}\mu(d)g(\frac{n}{d}) f(n)=∑d∣nμ(d)g(dn)。
证明:
- f = f ∗ 1 ∗ μ = g ∗ μ f=f*1*\mu=g*\mu f=f∗1∗μ=g∗μ。
- ∑ d ∣ n μ ( d ) g ( n d ) = ∑ d ∣ n μ ( d ) ∑ k ∣ n d f ( k ) = ∑ k d ∣ n μ ( d ) f ( k ) = ∑ k ∣ n f ( k ) ∑ d ∣ n k μ ( d ) \sum_{d|n}\mu(d)g(\dfrac{n}{d})=\sum_{d|n}\mu(d)\sum_{k|\frac{n}{d}}f(k)=\sum_{kd|n}\mu(d)f(k)=\sum_{k|n}f(k)\sum_{d|\frac{n}{k}}\mu(d) ∑d∣nμ(d)g(dn)=∑d∣nμ(d)∑k∣dnf(k)=∑kd∣nμ(d)f(k)=∑k∣nf(k)∑d∣knμ(d)
= ∑ k ∣ n f ( k ) [ n k = 1 ] = f ( n ) =\sum_{k|n}f(k)[\dfrac{n}{k}=1]=f(n) =∑k∣nf(k)[kn=1]=f(n)
若 g ( n ) = ∑ n ∣ d f ( d ) g(n)=\sum_{n|d}f(d) g(n)=∑n∣df(d),那么 f ( n ) = ∑ n ∣ d μ ( d n ) g ( d ) f(n)=\sum_{n|d}\mu(\dfrac{d}{n})g(d) f(n)=∑n∣dμ(nd)g(d)。
证明: ∑ n ∣ d μ ( d n ) g ( d ) = ∑ k = 1 ∞ μ ( k ) g ( k n ) = ∑ k = 1 ∞ μ ( k ) ∑ d ∣ k n f ( d ) = ∑ n ∣ d f ( d ) ∑ k ∣ d n μ ( k ) \sum_{n|d}\mu(\dfrac{d}{n})g(d)=\sum_{k=1}^{\infty}\mu(k)g(kn)=\sum_{k=1}^{\infty}\mu(k)\sum_{d|kn}f(d)=\sum_{n|d}f(d)\sum_{k|\frac{d}{n}}\mu(k) ∑n∣dμ(nd)g(d)=∑k=1∞μ(k)g(kn)=∑k=1∞μ(k)∑d∣knf(d)=∑n∣df(d)∑k∣ndμ(k)
= ∑ n ∣ d f ( d ) [ d n = 1 ] = f ( n ) =\sum_{n|d}f(d)[\dfrac{d}{n}=1]=f(n) =∑n∣df(d)[nd=1]=f(n)
trick
- 枚举倍数的一种灵活的变形:
g
(
d
)
=
∑
d
∣
i
n
f
(
i
)
=
∑
i
=
1
⌊
n
d
⌋
f
(
i
⋅
d
)
g(d)=\sum_{d|i}^nf(i)=\sum_{i=1}^{\lfloor\frac{n}{d}\rfloor}f(i\cdot d)
g(d)=∑d∣inf(i)=∑i=1⌊dn⌋f(i⋅d)。
很显然,但有时能发挥大作用。 - [ gcd ( i , j ) = 1 ] = ∑ d ∣ gcd ( i , j ) μ ( d ) [\gcd(i,j)=1]=\sum_{d|\gcd(i,j)}\mu(d) [gcd(i,j)=1]=∑d∣gcd(i,j)μ(d)。再写一遍是因为它太重要了。
- 关于因数个数函数: τ ( i ⋅ j ) = ∑ x ∣ i , y ∣ j [ gcd ( x , y ) = 1 ] \tau(i\cdot j)=\sum_{x|i,y|j}[\gcd(x,y)=1] τ(i⋅j)=∑x∣i,y∣j[gcd(x,y)=1]。