模板:莫比乌斯反演(数论)

60 篇文章 0 订阅
6 篇文章 0 订阅

所谓莫比乌斯反演,就是莫比乌斯进行的反演

(逃)

前言

在一些需要整除的式子和 gcd ⁡ , lcm ⁡ \gcd,\operatorname{lcm} gcd,lcm 等问题中发挥作用。

整除分块

整除分块是莫反的必要前置。

结论:

对于 i ≤ n i\le n in,满足 ⌊ 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 inn

证明:
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=ik+p(0p<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(0p<x,p=nmodx),化简得 p ′ = p − d k p'=p-dk p=pdk,由于 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+innini
= ⌊ n ⌊ n i ⌋ ⌋ =\lfloor \frac{n}{\lfloor\dfrac{n}{i}\rfloor}\rfloor =inn
证毕。

代码

(计算因数个数的前缀和)

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 pq 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 pq,d1p,d21,则有 ( 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 对应位置的次数。

常见的积性函数:

  1. 除数函数: σ k ( n ) = ∑ d ∣ n d k \sigma_k(n)=\sum_{d|n}d^k σk(n)=dndk

证明:
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) pqσk(p)σk(q)=(d1pd1k)(d2qd2k)=(d1d2)(pq)(d1d2)k=σk(pq)

  1. 约数个数函数: τ ( n ) = σ 0 ( n ) = ∑ d ∣ n 1 \tau(n)=\sigma_0(n)=\sum_{d|n}1 τ(n)=σ0(n)=dn1

  2. 约数和函数: σ ( n ) = ∑ d ∣ n d \sigma(n)=\sum_{d|n}d σ(n)=dnd

  3. 欧拉函数: φ ( 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) pqφ(p)φk(q)=(paprime,apaa1)(qbprime,bqbb1)=pqcprime,cpqcc1=φ(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(nd,n)=1,所有和 n n n 互质的数都是对称分布的。

  1. 莫比乌斯函数: μ ( 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
  2. 元函数: e ( n ) = [ n = 1 ] e(n)=[n=1] e(n)=[n=1]。完全积性。
  3. 恒等函数: I ( n ) = 1 I(n)=1 I(n)=1。完全积性。也可写作 1 ( n ) = 1 1(n)=1 1(n)=1
  4. 单位函数: i d ( n ) = n id(n)=n id(n)=n。完全积性。
  5. 恒等函数: 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)=fg=dnf(d)g(dn) 叫做 f , g f,g f,g狄利克雷卷积
狄利克雷卷积可以理解为乘法意义上的卷积,满足交换律、分配律,结合律。

f , g f,g f,g 均为积性函数,那么 h = f ∗ g h=f*g h=fg 也是积性函数。

证明: 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) pqh(p)h(q)=(d1pf(d1)g(d1p))(d2qf(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 11=τ
1 ∗ i d = σ 1*id=\sigma 1id=σ

证明:直接展开即可得。

∑ d ∣ n μ ( d ) = [ n = = 1 ] \sum_{d|n}\mu(d)=[n==1] dnμ(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 dnμ(d)=i=0m(im)(1)i=(11)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]=dgcd(i,j)μ(d)

证明:直接令上一个式子 ∑ d ∣ n μ ( d ) = [ n = = 1 ] \sum_{d|n}\mu(d)=[n==1] dnμ(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)=dnμ(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)=dnφ(n)

证明: i d = i d ∗ e = i d ∗ μ ∗ 1 = φ ∗ 1 id=id*e=id*\mu*1=\varphi*1 id=ide=idμ1=φ1

莫比乌斯反演

g ( n ) = ∑ d ∣ n f ( d ) g(n)=\sum_{d|n}f(d) g(n)=dnf(d),那么 f ( n ) = ∑ d ∣ n μ ( d ) g ( n d ) f(n)=\sum_{d|n}\mu(d)g(\frac{n}{d}) f(n)=dnμ(d)g(dn)

证明:

  1. f = f ∗ 1 ∗ μ = g ∗ μ f=f*1*\mu=g*\mu f=f1μ=gμ
  2. ∑ 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) dnμ(d)g(dn)=dnμ(d)kdnf(k)=kdnμ(d)f(k)=knf(k)dknμ(d)
    = ∑ k ∣ n f ( k ) [ n k = 1 ] = f ( n ) =\sum_{k|n}f(k)[\dfrac{n}{k}=1]=f(n) =knf(k)[kn=1]=f(n)

g ( n ) = ∑ n ∣ d f ( d ) g(n)=\sum_{n|d}f(d) g(n)=ndf(d),那么 f ( n ) = ∑ n ∣ d μ ( d n ) g ( d ) f(n)=\sum_{n|d}\mu(\dfrac{d}{n})g(d) f(n)=ndμ(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) ndμ(nd)g(d)=k=1μ(k)g(kn)=k=1μ(k)dknf(d)=ndf(d)kndμ(k)
= ∑ n ∣ d f ( d ) [ d n = 1 ] = f ( n ) =\sum_{n|d}f(d)[\dfrac{d}{n}=1]=f(n) =ndf(d)[nd=1]=f(n)

trick

  1. 枚举倍数的一种灵活的变形: 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)=dinf(i)=i=1dnf(id)
    很显然,但有时能发挥大作用。
  2. [ gcd ⁡ ( i , j ) = 1 ] = ∑ d ∣ gcd ⁡ ( i , j ) μ ( d ) [\gcd(i,j)=1]=\sum_{d|\gcd(i,j)}\mu(d) [gcd(i,j)=1]=dgcd(i,j)μ(d)。再写一遍是因为它太重要了。
  3. 关于因数个数函数: τ ( i ⋅ j ) = ∑ x ∣ i , y ∣ j [ gcd ⁡ ( x , y ) = 1 ] \tau(i\cdot j)=\sum_{x|i,y|j}[\gcd(x,y)=1] τ(ij)=xi,yj[gcd(x,y)=1]
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值