【学习笔记】莫比乌斯反演

前言:求赞啊啦啦

积性函数

  • 积性函数:对于任意互质的整数\(a\)\(b\)有性质\(f(ab)=f(a)f(b)\)的数论函数。

  • 完全积性函数:对于任意整数\(a\)\(b\)有性质\(f(ab)=f(a)f(b)\)的数论函数。

  • 关于一些常用的积性函数:(打星号的可以不用记

\(\varphi(n)\) -欧拉函数

\(\mu(n)\) -莫比乌斯函数,关于非平方数的质因子数目

\(d(n)\) - \(n\)的正因子数目

\(\sigma(n)\) -\(n\)的所有正因子之和

\(I(n)\) -定义为 \(I(n) = 1\) (完全积性)

\(Id(n)\) -\(ID\)函数,定义为 \(Id(n) = n\)(完全积性)

\(\epsilon(n)\) -单位函数,定义为:若\(n = 1\)\(\epsilon(n)=1\);若 \(n > 1\)\(\epsilon(n)=0\)。别称为"对于狄利克雷卷积的乘法单位"(完全积性)

*** \(Idk(n)\) -幂函数,对于任何复数、实数k,定义为\(Idk(n) = n^k\) (完全积性)

关于莫比乌斯函数和欧拉函数的一些定义

\[ \mu(x)=\left\{ \begin{aligned} 1,x=1 \\ (-1)^k, x=p_1p_2p_3p_4...p_k,p_i\in prime\\ 0,otherwise\\ \end{aligned} \right. \]

\[\varphi(x)=\sum_{i=1}^{x}[gcd(x,i)==1] \]

前置知识:数论分块

建议不了解 数论分块(整除分块) 的同学了解一下,这个在许多莫反的题目里都有重要的作用

数论分块:一个求

\[\sum_{i=1}^n \lfloor \dfrac n i \rfloor \]

的东西

暴力复杂度显然为\(O(n)\),但是数论分块复杂度为\(O(\sqrt{n})\)

tql!!!

证明

我们可以发现有许多\(i\)\(\lfloor \dfrac n i\rfloor\)都是相等的,所以我们可以把相等的分成块,显然:

\(i>\sqrt n\)\(\lfloor \dfrac n i\rfloor< \sqrt n\)

\(i \le \sqrt n\)\(i\)\(\sqrt n\)

证毕

for(int l=1,r;l<=n;l=r+1)
{
	r=n/(n/l);
	ans+=(r-l+1)*(n/l);
}

筛莫比乌斯函数和欧拉函数

首先知道欧拉函数和莫比乌斯函数共同的性质:他们都是积性函数

\[\mu(mn)=\mu(m)*\mu(n) \]

\[\varphi(mn)=\varphi(m)*\varphi(n) \]

欧拉函数的特征:

\[\varphi(i)=i-1 (i \in prime) \]

莫比乌斯函数的特征:

\[\mu(i)=-1 (i \in prime) \]

void get_phi(){
    //筛欧拉函数
    phi[1]=1;
    for(int i=2;i<=n;i++){
        if(!check[i]){
            prime[++cnt]=i;
            phi[i]=i-1;
        }
        for(int j=1;j<=cnt&&prime[j]*i<=n;j++){
            check[i*prime[j]]=1;
            if(i%prime[j])  phi[i*prime[j]]=phi[i]*(prime[j]-1);
            else{
                phi[i*prime[j]]=phi[i]*prime[j];
                break;
            }
        }
    }
}
void get_mu(int n)//筛莫比乌斯函数
{
    mu[1]=1;
    for(int i=2;i<=n;i++)
    {
        if(!vis[i]){prim[++cnt]=i;mu[i]=-1;}
        for(int j=1;j<=cnt&&prim[j]*i<=n;j++)
        {
            vis[prim[j]*i]=1;
            if(i%prim[j]==0)break;
            else mu[i*prim[j]]=-mu[i];
        }
    }
 }

狄利克雷卷积

定义\(f,g\)两个函数的狄利克雷卷积\((*)\)运算为:

\[(f*g)(n)=\sum_{d|n}f(d)g(\dfrac n d) \]

狄利克雷卷积的性质

交换律:\(f*g=g*f\)

结合律:\((f*g)*h=f*(g*h)\)

\((f*\epsilon)(n)=f(n)\)

\(f,g\)均为积性函数,则\(f*g\)也为积性函数。

一些例子:

\[\mu*I=\epsilon \]

\[\varphi * I = id \]

\[\mu * id = \varphi \]

\[d*I=\sigma \]

\[\sum_{d|n}\mu(d)=[n=1] \]

\[\sum_{d|n}\varphi(d)=n \]

\[\sum_{d|n}d\mu(\dfrac n d)=\varphi(n) \]

\[\sum_{x|n}d(x)=\sigma(n) \]

莫比乌斯反演

一些有趣的性质:

\[\sum_{i|n} \mu(i)=[n=1] \]

证明:

假设\(n=p_1^kp_2^k...p_x^k\)

那么有

\(\mu(1)+ \mu(p^1) + \mu(p^2) + \mu(p^3)+...\mu(p^k)\)

\(p=1\) 那么\(\mu(1)=1\)

\(p!=1\) 那么\(\mu(1)+ \mu(p^1) + \mu(p^2) + \mu(p^3)+...\mu(p^k)=0\)

\(k=1\) \(\mu(1)+ \mu(p^1)=1+(-1)=0\)

\(k=2\) \(\mu(1)+ \mu(p^1)+\mu(p^2)=1+(-1)+0=0\)

可见对于任意质数\(p\)均有以上规律

证毕

\[\sum_{d|n} \dfrac {\mu(d)} d=\dfrac {\varphi(n)} n \]

不会证..咕咕咕

反演:

\[g(n)=\sum_{d|n} f(d) \]

\[f(n)=\sum_{d|n} \mu(d)g(\lfloor \dfrac n d \rfloor) \]

\[g(n)=\sum_{n|d}f(d) \]

\[f(n)=\sum_{n|d} \mu(\dfrac d n )g(d) \]

证明:

方法\(1\)

\[\sum_{d|n} \mu(d)g(\lfloor \dfrac n d \rfloor) \]

\[=\sum_{d|n} \mu(d)\sum_{i|\lfloor \dfrac n d \rfloor} f(i) \]

\[=\sum_{i|n}f(i) \sum_{d|\lfloor \dfrac n i \rfloor}\mu(d) \]

\[=f(n) \]

方法\(2\):
已知\(f=g*I\),求证$g=f*\mu $

\(f*\mu=g*I*\mu=g(I*\mu=\epsilon)\)

欧拉反演

\[\sum_{d|n}\varphi(d)=n \]

\[\varphi*I=id \]

证明:

\[n=\prod_{i=1}^k p_i^{c_i} \]

由于\(p\in prime\)

所以\(d=p^0,p^1...p^c\)

\[\varphi *I=\sum_{d|n}\varphi(\dfrac n d) \]

\[=\sum_{i=1}^c\varphi(p^i) \]

\[=1+p^0 \times(p-1)+p^1 \times(p-1)+...+p^{c-1} \times (p-1) \]

\[=p^c \]

\[=ID(n) \]

重要知识

\[\sum_{d|gcd(i,j)}\mu(d)=[gcd(i,j)==1] \]

根据

\[\sum_{d|n}\mu(d)=[n=1] \]

\(gcd(i,j)=n\)可得


学习笔记参考\(oi-wiki\)

posted @ 2020-04-29 23:01  Ciciiiii  阅读(240)  评论(2)    收藏  举报