模板:莫比乌斯反演(数论)
文章目錄
- 前言
- 整除分塊
- 代碼
- 積性函數(shù)
- 線性篩
- 狄利克雷卷積
- 莫比烏斯反演
- trick
所謂莫比烏斯反演,就是莫比烏斯進行的反演
(逃)
前言
在一些需要整除的式子和 gcd?,lcm?\gcd,\operatorname{lcm}gcd,lcm 等問題中發(fā)揮作用。
整除分塊
整除分塊是莫反的必要前置。
結論:
對于 i≤ni\le ni≤n,滿足 ?nx?=?ni?\lfloor\dfrac{n}{x}\rfloor=\lfloor\dfrac{n}{i}\rfloor?xn??=?in?? 的最大的 xxx 為 ?n?ni??\lfloor\dfrac{n}{\lfloor\frac{n}{i}\rfloor}\rfloor??in??n??。
證明:
設 k=?ni?k=\lfloor\dfrac{n}{i}\rfloork=?in??,那么就有 n=i?k+p(0≤p<i,p=nmodi)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+dx=i+dx=i+d,同理有 n=(i+d)?k+p′(0≤p′<x,p′=nmodx)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?dkp'=p-dkp′=p?dk,由于 p′>0p'>0p′>0,有 d<?pk?d<\lfloor\dfrac{p}{k}\rfloord<?kp??。
那么就有:
xmax=i+dmaxx_{max}=i+d_{max}xmax?=i+dmax?
=i+?pk?=i+\lfloor\frac{p}{k}\rfloor=i+?kp??
=i+?nmodik?=i+\lfloor\frac{n\bmod i}{k}\rfloor=i+?knmodi??
=?i+n??ni??i?ni??=\lfloor i+\frac{n-\lfloor \dfrac{n}{i}\rfloor\cdot i}{\lfloor\dfrac{n}{i}\rfloor}\rfloor=?i+?in??n??in???i??
=?n?ni??=\lfloor \frac{n}{\lfloor\dfrac{n}{i}\rfloor}\rfloor=??in??n??
證畢。
代碼
(計算因數(shù)個數(shù)的前綴和)
ll calc(ll x){if(x<=0) return 0ll 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; }積性函數(shù)
定義:
如果 f:Z+→Cf:\mathbb{Z^+}\to \mathbb{C}f:Z+→C,則稱 f(n)f(n)f(n) 為一個數(shù)論函數(shù)。
如果 f(n)f(n)f(n) 為一個數(shù)論函數(shù),且對于 p⊥qp\perp qp⊥q,f(pq)=f(p)f(q)f(pq)=f(p)f(q)f(pq)=f(p)f(q),則稱 f(n)f(n)f(n) 為一個積性函數(shù)。
如果 f(n)f(n)f(n) 為一個積性函數(shù),且對于任意 p,qp,qp,q,f(pq)=f(p)f(q)f(pq)=f(p)f(q)f(pq)=f(p)f(q),則稱 f(n)f(n)f(n) 為一個完全積性函數(shù)。
一個重要的性質:
對于 p⊥q,d1∣p,d2∣1p\perp q,d_1|p,d_2|1p⊥q,d1?∣p,d2?∣1,則有 (d1d2)∣(pq)(d_1d_2)|(pq)(d1?d2?)∣(pq)
證明:結合基本算數(shù)定理,d1,d2d_1,d_2d1?,d2? 必然沒有共同因子,相乘后各個因子的次數(shù)還是不超過原來的 p,qp,qp,q 對應位置的次數(shù)。
常見的積性函數(shù):
證明:
p⊥q→σk(p)σk(q)=(∑d1∣pd1k)(∑d2∣qd2k)=∑(d1d2)∣(pq)(d1d2)k=σk(pq)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?∣p?d1k?)(∑d2?∣q?d2k?)=∑(d1?d2?)∣(pq)?(d1?d2?)k=σk?(pq)。
約數(shù)個數(shù)函數(shù):τ(n)=σ0(n)=∑d∣n1\tau(n)=\sigma_0(n)=\sum_{d|n}1τ(n)=σ0?(n)=∑d∣n?1。
約數(shù)和函數(shù):σ(n)=∑d∣nd\sigma(n)=\sum_{d|n}dσ(n)=∑d∣n?d。
歐拉函數(shù):φ(n)=∑i=1n[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∈prime,a∣pa?1a)(q∏b∈prime,b∣qb?1b)=pq∏c∈prime,c∣pqc?1c=φ(pq)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∣p?aa?1?)(q∏b∈prime,b∣q?bb?1?)=pq∏c∈prime,c∣pq?cc?1?=φ(pq)
性質:φ(n)=∑i=1n[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)=1gcd(d,n)=1,同樣有 gcd?(n?d,n)=1\gcd(n-d,n)=1gcd(n?d,n)=1,所有和 nnn 互質的數(shù)都是對稱分布的。
線性篩
利用線性篩篩出 μ\muμ 這樣的積性函數(shù)。
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];}} }狄利克雷卷積
定義:
對于數(shù)論函數(shù) f,gf,gf,g,h(n)=f?g=∑d∣nf(d)g(nd)h(n)=f*g=\sum_{d|n}f(d)g(\dfrac{n}ze8trgl8bvbq)h(n)=f?g=∑d∣n?f(d)g(dn?) 叫做 f,gf,gf,g 的狄利克雷卷積。
狄利克雷卷積可以理解為乘法意義上的卷積,滿足交換律、分配律,結合律。
若 f,gf,gf,g 均為積性函數(shù),那么 h=f?gh=f*gh=f?g 也是積性函數(shù)。
證明:p⊥q→h(p)h(q)=(∑d1∣pf(d1)g(pd1))(∑d2∣qf(d2)g(qd2))=∑(d1d2)∣(pq)f(d1)f(d2)g(pd1)g(qd2)=∑(d1d2)∣(pq)f(d1d2)g(pqd1d2)=h(pq)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?∣p?f(d1?)g(d1?p?))(∑d2?∣q?f(d2?)g(d2?q?))=∑(d1?d2?)∣(pq)?f(d1?)f(d2?)g(d1?p?)g(d2?q?)=∑(d1?d2?)∣(pq)?f(d1?d2?)g(d1?d2?pq?)=h(pq)
1?1=τ1*1=\tau1?1=τ
1?id=σ1*id=\sigma1?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>1n>1n>1,由于含平方因子的 μ\muμ 均為0,只需要考慮 nnn 所有不含平方因子的因數(shù)。
設 nnn 有 mmm 個質因子,從這些質因子中任意選擇(每項最多一個)構成因數(shù),就有:∑d∣nμ(d)=∑i=0m(mi)(?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) 即可得。
φ=μ?id\varphi=\mu*idφ=μ?id
證明:(μ?id)(n)=∑d∣nμ(d)nd(\mu*id)(n)=\sum_{d|n}\mu(d)\dfrac{n}ze8trgl8bvbq(μ?id)(n)=∑d∣n?μ(d)dn?,右邊的式子就可以理解成容斥篩掉所有和 nnn 不互質的數(shù)。
id=φ?1,n=id(n)=∑d∣nφ(n)id=\varphi*1,n=id(n)=\sum_{d|n}\varphi(n)id=φ?1,n=id(n)=∑d∣n?φ(n)
證明:id=id?e=id?μ?1=φ?1id=id*e=id*\mu*1=\varphi*1id=id?e=id?μ?1=φ?1
莫比烏斯反演
若 g(n)=∑d∣nf(d)g(n)=\sum_{d|n}f(d)g(n)=∑d∣n?f(d),那么 f(n)=∑d∣nμ(d)g(nd)f(n)=\sum_{d|n}\mu(d)g(\frac{n}ze8trgl8bvbq)f(n)=∑d∣n?μ(d)g(dn?)。
證明:
=∑k∣nf(k)[nk=1]=f(n)=\sum_{k|n}f(k)[\dfrac{n}{k}=1]=f(n)=∑k∣n?f(k)[kn?=1]=f(n)
若 g(n)=∑n∣df(d)g(n)=\sum_{n|d}f(d)g(n)=∑n∣d?f(d),那么 f(n)=∑n∣dμ(dn)g(d)f(n)=\sum_{n|d}\mu(\dfracze8trgl8bvbq{n})g(d)f(n)=∑n∣d?μ(nd?)g(d)。
證明:∑n∣dμ(dn)g(d)=∑k=1∞μ(k)g(kn)=∑k=1∞μ(k)∑d∣knf(d)=∑n∣df(d)∑k∣dnμ(k)\sum_{n|d}\mu(\dfracze8trgl8bvbq{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|\fracze8trgl8bvbq{n}}\mu(k)∑n∣d?μ(nd?)g(d)=∑k=1∞?μ(k)g(kn)=∑k=1∞?μ(k)∑d∣kn?f(d)=∑n∣d?f(d)∑k∣nd??μ(k)
=∑n∣df(d)[dn=1]=f(n)=\sum_{n|d}f(d)[\dfracze8trgl8bvbq{n}=1]=f(n)=∑n∣d?f(d)[nd?=1]=f(n)
trick
很顯然,但有時能發(fā)揮大作用。
總結
以上是生活随笔為你收集整理的模板:莫比乌斯反演(数论)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 怎么保存css样式(怎么保存css样式图
- 下一篇: 怎么去介绍一个网页页面的设计(怎么去介绍