日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

發(fā)布時間:2023/12/3 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 模板:莫比乌斯反演(数论) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

文章目錄

  • 前言
  • 整除分塊
    • 代碼
  • 積性函數(shù)
  • 線性篩
  • 狄利克雷卷積
  • 莫比烏斯反演
  • trick

所謂莫比烏斯反演,就是莫比烏斯進行的反演

(逃)

前言

在一些需要整除的式子和 gcd?,lcm?\gcd,\operatorname{lcm}gcd,lcm 等問題中發(fā)揮作用。

整除分塊

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

結(jié)論:

對于 i≤ni\le nin,滿足 ?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??

證明:
設(shè) 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(0p<i,p=nmodi),設(shè) 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(0p<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 qpqf(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,qf(pq)=f(p)f(q)f(pq)=f(p)f(q)f(pq)=f(p)f(q),則稱 f(n)f(n)f(n) 為一個完全積性函數(shù)

一個重要的性質(zhì):

對于 p⊥q,d1∣p,d2∣1p\perp q,d_1|p,d_2|1pq,d1?p,d2?1,則有 (d1d2)∣(pq)(d_1d_2)|(pq)(d1?d2?)(pq)

證明:結(jié)合基本算數(shù)定理,d1,d2d_1,d_2d1?,d2? 必然沒有共同因子,相乘后各個因子的次數(shù)還是不超過原來的 p,qp,qp,q 對應(yīng)位置的次數(shù)。

常見的積性函數(shù):

  • 除數(shù)函數(shù):σk(n)=∑d∣ndk\sigma_k(n)=\sum_{d|n}d^kσk?(n)=dn?dk
  • 證明:
    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)pqσ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)=dn?1

  • 約數(shù)和函數(shù):σ(n)=∑d∣nd\sigma(n)=\sum_{d|n}dσ(n)=dn?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)pqφ(?p)φk?(q)=(paprime,ap?aa?1?)(qbprime,bq?bb?1?)=pqcprime,cpq?cc?1?=φ(pq)

    性質(zhì):φ(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 互質(zhì)的數(shù)都是對稱分布的。

  • 莫比烏斯函數(shù):μ(n)\mu(n)μ(n)μ(1)=1\mu(1)=1μ(1)=1,對于無平方因子的數(shù) n=∏ikpin=\prod_i^k p_in=ik?pi?μ(n)=(?1)k\mu(n)=(-1)^kμ(n)=(?1)k;對于有平方因子的數(shù) nnnμ(n)=0\mu(n)=0μ(n)=0
  • 元函數(shù):e(n)=[n=1]e(n)=[n=1]e(n)=[n=1]。完全積性。
  • 恒等函數(shù):I(n)=1I(n)=1I(n)=1。完全積性。也可寫作 1(n)=11(n)=11(n)=1
  • 單位函數(shù):id(n)=nid(n)=nid(n)=n。完全積性。
  • 恒等函數(shù):idk(n)=nkid^k(n)=n^kidk(n)=nk。完全積性。
  • 線性篩

    利用線性篩篩出 μ\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,gh(n)=f?g=∑d∣nf(d)g(nd)h(n)=f*g=\sum_{d|n}f(d)g(\dfrac{n}ozvdkddzhkzd)h(n)=f?g=dn?f(d)g(dn?) 叫做 f,gf,gf,g狄利克雷卷積
    狄利克雷卷積可以理解為乘法意義上的卷積,滿足交換律、分配律,結(jié)合律。

    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)pqh(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]dn?μ(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ù)。
    設(shè) nnnmmm 個質(zhì)因子,從這些質(zhì)因子中任意選擇(每項最多一個)構(gòu)成因數(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=0dn?μ(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]=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) 即可得。

    φ=μ?id\varphi=\mu*idφ=μ?id

    證明:(μ?id)(n)=∑d∣nμ(d)nd(\mu*id)(n)=\sum_{d|n}\mu(d)\dfrac{n}ozvdkddzhkzd(μ?id)(n)=dn?μ(d)dn?,右邊的式子就可以理解成容斥篩掉所有和 nnn 不互質(zhì)的數(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)=dn?φ(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)=dn?f(d),那么 f(n)=∑d∣nμ(d)g(nd)f(n)=\sum_{d|n}\mu(d)g(\frac{n}ozvdkddzhkzd)f(n)=dn?μ(d)g(dn?)

    證明:

  • f=f?1?μ=g?μf=f*1*\mu=g*\muf=f?1?μ=g?μ
  • ∑d∣nμ(d)g(nd)=∑d∣nμ(d)∑k∣ndf(k)=∑kd∣nμ(d)f(k)=∑k∣nf(k)∑d∣nkμ(d)\sum_{d|n}\mu(d)g(\dfrac{n}ozvdkddzhkzd)=\sum_{d|n}\mu(d)\sum_{k|\frac{n}ozvdkddzhkzd}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)kdn??f(k)=kdn?μ(d)f(k)=kn?f(k)dkn??μ(d)
    =∑k∣nf(k)[nk=1]=f(n)=\sum_{k|n}f(k)[\dfrac{n}{k}=1]=f(n)=kn?f(k)[kn?=1]=f(n)
  • g(n)=∑n∣df(d)g(n)=\sum_{n|d}f(d)g(n)=nd?f(d),那么 f(n)=∑n∣dμ(dn)g(d)f(n)=\sum_{n|d}\mu(\dfracozvdkddzhkzd{n})g(d)f(n)=nd?μ(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(\dfracozvdkddzhkzd{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|\fracozvdkddzhkzd{n}}\mu(k)nd?μ(nd?)g(d)=k=1?μ(k)g(kn)=k=1?μ(k)dkn?f(d)=nd?f(d)knd??μ(k)
    =∑n∣df(d)[dn=1]=f(n)=\sum_{n|d}f(d)[\dfracozvdkddzhkzd{n}=1]=f(n)=nd?f(d)[nd?=1]=f(n)

    trick

  • 枚舉倍數(shù)的一種靈活的變形:g(d)=∑d∣inf(i)=∑i=1?nd?f(i?d)g(d)=\sum_{d|i}^nf(i)=\sum_{i=1}^{\lfloor\frac{n}ozvdkddzhkzd\rfloor}f(i\cdot d)g(d)=din?f(i)=i=1?dn???f(i?d)
    很顯然,但有時能發(fā)揮大作用。
  • [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)。再寫一遍是因為它太重要了。
  • 關(guān)于因數(shù)個數(shù)函數(shù):τ(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)=xi,yj?[gcd(x,y)=1]
  • 總結(jié)

    以上是生活随笔為你收集整理的模板:莫比乌斯反演(数论)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。