首页 > 其他分享 >莫比乌斯函数及反演学习笔记

莫比乌斯函数及反演学习笔记

时间:2023-10-11 18:01:10浏览次数:34  
标签:dfrac sum 莫比 mid varphi mu 反演 乌斯 displaystyle

前置知识

\(1.\) 艾佛森括号:
\([P]=\begin{cases}1 & \mathtt{(if\ P\ is \ true)}\\0 & \mathtt{(otherwise)}\end{cases}\)
\(2.\) \(a\mid b\) 表示 \(a\) 是 \(b\) 的因子
\(3.\) 整除分块:\(\displaystyle\sum_{i=1}^n\lfloor\dfrac{N}{i}\rfloor\)
\(4.\) \(p\) 没有特殊说明时表示质数
\(5.\) \(\mathbb{P}\) 表示质数集,\(\mathbb{Z}\) 表示整数集。
\(6.\) 常见的函数:

  • 常函数:\(1(x)=1\)
  • 单位元函数:\(\epsilon(x)=[x==1]\)
  • 恒等函数:\(Id_k(x)=x^k\)
  • 因子函数:\(d(x)=\displaystyle\sum_{i\mid x}1\)
  • 因子和函数:\(\sigma(x)_k=\displaystyle\sum_{i\mid x}i^k\)
  • 欧拉函数:\(\varphi(x)=\displaystyle\sum_{i=1}^x[\gcd(i,x)==1]\)

函数

数论函数

数论函数指一类定义域是正整数,值域是一个数集的函数。有:

  • \((f+g)(x)=f(x)+g(x)\)
  • \((x*f)(n)=x*f(n)\)

积性函数

当数论函数 \(f\) 对于 \(\gcd(n,m)=1\) 有:

\[f(nm)=f(n)f(m) \]

则数论函数 \(f\) 为积性函数。
例如:\(d(x),\varphi(x)\)

完全积性函数

当积性函数 \(f\) 对于 \(\gcd(n,m)\not=1\) 仍有:

\[f(nm)=f(n)f(m) \]

则积性函数 \(f\) 为完全积性函数。
例如:\(\epsilon(x),id_k(x)\)

狄利克雷卷积 (dirichlet)

定义两个函数 \(f(n)\) 和 \(g(n)\) 的狄利克雷卷积 \((f*g)(n)\) 其中 \(*\) 为卷积符号:

\[t(n)=\displaystyle\sum_{i|n}f(i)g(\dfrac{n}{i})\Leftrightarrow \displaystyle\sum_{ij}f(i)g(j) \]

同时狄利克雷卷积满足以下一些性质:

  • \(f*g=g*f\)
  • \((f*g)*h=f*(g*h)\)
  • \(f*h+g*h=(f+g)*h\)
  • \((xf)*g=x(f*g)\)
  • \(\epsilon*f=f\)
  • 对于每一个 \(f(1)\not=1\) 的函数 \(f\) 都有逆元 \(g\),使得 \(f*g=\epsilon\)

那么对于一个 \(f(1)\not=1\) 的函数 \(f\) 的逆元 \(g\) 该如何计算呢
我们只需要通过狄利克雷卷积的定义简单推导一下得到:

\[g(n)=\dfrac{1}{f(1)}\left([n=1]-\displaystyle\sum_{i\mid n,i\not=1}f(i)g(\frac{n}{i})\right) \]

这样就有:\(\displaystyle\sum_{i\mid n}f(i)g(\dfrac{n}{i})=f(1)g(n)+\displaystyle\sum_{i\mid n,i\not=1}=[n=1]=\epsilon\)。

欧拉函数 (Euler)

定义

欧拉函数用 \(\varphi\) 表示,定义:

\[\varphi(n)=\displaystyle\prod_{i=1}^n[\gcd(i,n)==1] \]

解释:\(\varphi(n)\) 表示 \(1\sim n\) 中与 \(n\) 互质的数的个数。

公式

先设 \(n=\displaystyle\prod_{i=1}^kp_i^{t_i}\),则有:

\[\varphi(n)=n\displaystyle\prod_{i=1}^k\left(1-\dfrac{1}{p_i}\right) \]

证明:
我们先假设 \(n\in\mathbb{N^+}\) 只存在质因子 \(p,q\)。
考虑容斥,与 \(n\) 互质的数就是所有数减去 \(p,2p,\cdots,\lfloor\dfrac{n}{p}\rfloor,q,2q,\cdots,\lfloor\dfrac{n}{q}\rfloor\)。
同时根据容斥原理,需要补回 \(pq,2pq,\cdots,\lfloor\dfrac{n}{pq}\rfloor\)。
即 \(\varphi(n)=n-\dfrac{n}{p}-\dfrac{n}{q}+\dfrac{n}{pq}=n\left(1-\dfrac{1}{p}\right)\left(1-\dfrac{1}{q}\right)\)
那么同理,当 \(n=\displaystyle\prod_{i=1}^{k}p_i^{t_i}\) 时,有:

\[\varphi(n)=n\left(1-\dfrac{1}{p_1}\right)\left(1-\dfrac{1}{p_2}\right)\cdots\left(1-\dfrac{n}{p_k}\right)=n\displaystyle\prod_{i=1}^k\left(1-\dfrac{1}{p_i}\right) \]

积性函数

函数 \(\varphi\) 满足 \(\varphi(nm)=\varphi(n)\varphi(m)\ \ \ (\gcd(n,m)=1)\)。
即 \(\varphi\) 为积性函数。

证明:
设 \(n=\displaystyle\prod_{i=1}^kp_i^{a_i},m=\displaystyle\prod_{i=1}^tq_i^{b_i}\ \ \ (\gcd(n,m)=1)\)

\[\begin{aligned}\varphi(nm)= & nm\displaystyle\prod_{i=1}^k\left(1-\dfrac{1}{p_i}\right)\displaystyle\prod_{j=1}^t\left(1-\dfrac{1}{q_j}\right)\\= & n\displaystyle\prod_{i=1}^k\left(1-\dfrac{1}{p_i}\right)m\displaystyle\prod_{j=1}^t\left(1-\dfrac{1}{q_j}\right)\\ = & \varphi(n)\varphi(m)\end{aligned} \]

性质

\[\displaystyle\sum_{d\mid n}\varphi(d)=n\Leftrightarrow \varphi*1=Id \]

证明:
记 \(f(n)=\displaystyle\sum_{d\mid n}\varphi(d)\)。则由于:
\(f(n)f(m)=\displaystyle\sum_{i\mid n}\varphi(i)\displaystyle\sum_{j\mid n}\varphi(j)=\displaystyle\sum_{d\mid nm}\varphi(d)=f(nm)\)
可以得到 \(f(n)\) 为积性函数。
设 \(n=\displaystyle\prod_{i=1}^kp_i^{t_i}\)。
而对于 \(f(p^c)=\displaystyle\sum_{i=1}^c\varphi(p^i)=\displaystyle\sum_{i=1}^cp^i-p^{i-1}=p^c\)
\(\therefore f(n)=\displaystyle\prod_{i=1}^kf(p_i^{t_i})=\displaystyle\prod_{i=1}^kp_i^{t_i}=n\)

实现

我们可以通过线性筛筛质数的时候是顺便就把欧拉函数筛出来。

void Euler(int n){
    phi[1]=1;
    for (int i=2;i<=n;i++){
        if (!isp[i])primes.push_back(i),phi[i]=i-1;
        for(auto p:primes){
            if(p*i>n)break;
            isp[p*i]=1;
            if (!(i%p)){
                phi[p*i]=phi[i]*p;
                break;
            }else phi[p*i]=phi[p]*phi[i];
        }
    }
}

莫比乌斯函数 (Möbius)

定义

莫比乌斯函数用 \(\mu\) 表示,定义:

\[\mu(x)=\begin{cases}0 & x=1\\1 & \exists p\in\mathbb{Z},p^2\mid x\\(-1)^k & \displaystyle\prod_{i=1}^kp_i(1\le i,j\le j,p_i\not=p_j)\end{cases} \]

解释一下对 \(\mu(x)\) 的定义:

  • 当 \(x=1\) 时,\(\mu(x)=1\);
  • 当 \(x\) 含有任何的质因子的幂次 \(\ge 2\),\(\mu(x)=0\);
  • 当 \(x=\displaystyle\prod_{i=1}^kp_i\),且所有 \(p_i\) 的互不相同时,\(\mu(x)=(-1)^k\)

性质

只知道莫比乌斯函数的定义还远远不够,我们还需要了解一下他的性质:

  • \(n\in\mathbb{N^+},\displaystyle\sum_{d\mid n}\mu(d)=[n=1],\mu*1=\epsilon\)。

证明:

当 \(n=1\) 时,\(\displaystyle\sum_{d|n}=\mu(1)=1=[n=1]\)。

当 \(n>1\) 时,我们记 \(n=\displaystyle\prod_{i=1}^kp_i^{t_i}\)
当 \(\exists t_i,t_i>1\) 时,\(\mu(n)=0\)。
当 \(\forall t_i,t_i=1\) 时,对于 \(\mu(d)=(-1)^r\) 这样的存在 \(C_k^r\) 个。
\(\therefore \displaystyle\sum_{d\mid n}\mu(d)=C_k^0+C_k^1+C_k^2+\cdots+(-1)^kC_k^k=\displaystyle\sum_{i=0}^k(-1)^iC_k^i\)
由二项式定理:\((x+y)^n=\displaystyle\sum_{i=0}^nC_n^ix^iy^{n-i}\)
\(\therefore \displaystyle\sum_{d\mid n}\mu(d)=\displaystyle\sum_{i=0}^k(-1)^iC_k^i=(-1+1)^n=0\)

  • \(\displaystyle\sum_{d\mid n}\dfrac{\mu(d)}{d}=\dfrac{\varphi(n)}{n}\)

证明:
\(\begin{aligned}\displaystyle\sum_{d\mid n}\dfrac{\mu(d)}{d}=&\displaystyle\sum_{d\mid n}\dfrac{\mu(d)\frac{n}{d}}{n}\\=& \dfrac{\displaystyle\sum_{d\mid n}\mu(d)Id\left(\frac{n}{d}\right)}{n}\\= & \dfrac{\mu(n)*Id(n)}{n}\end{aligned}\)
根据 \(\varphi*1=Id\Leftrightarrow\varphi*1*\mu=\mu*Id\Leftrightarrow\varphi*\epsilon=\mu*Id\) 得
\(\displaystyle\sum_{d\mid n}\dfrac{\mu(d)}{d}=\dfrac{\mu(n)*Id(n)}{n}=\dfrac{\varphi(n)}{n}\)

实现

和欧拉函数一样,也可以在筛质数的时候顺便得到。

void getMu(int n){
    mu[1]=1;
	isp[0]=isp[1]=1;
    for(int i=2;i<=n;++i){
        if(!isp[i])mu[p[++cnt]=i]=-1;
        for(int j=1;j<=cnt&&p[j]*i<=n;++j){
            isp[i*p[j]]=1;
            if(!(i%p[j]))break;
            else mu[p[j]*i]=-mu[i];
        }
    }
}

莫比乌斯反演

当存在有两个函数 \(f\) 和 \(g\) 满足:\(f(n)=\displaystyle\sum_{d|n}g(d)\) 即 \(f=g*1\)。
则一定有:

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

证明:

\[f=g*1\Leftrightarrow f*\mu=g*1*\mu \Leftrightarrow f*\mu=g \]

倍数形式:

\[g(n)=\displaystyle\sum_{n\mid d}f(d)\Leftrightarrow f(n)=\displaystyle\sum_{n\mid d}\mu(\dfrac{d}{n})g(d) \]

例题

\(1.\) P2522 Problem B
求 \(\displaystyle\sum_{i=a}^b\displaystyle\sum_{j=c}^d[\gcd(i,j)=k]\)

设 \(f(k)=\displaystyle\sum_{i=1}^n\displaystyle\sum_{j=1}^m[\gcd(i,j)=k],g(n)=\displaystyle\sum_{n\mid k}f(k)\)
则通过莫比乌斯反演的倍数形式可以得到: \(f(x)=\displaystyle\sum_{x\mid k}\mu(\lfloor\dfrac{k}{x}\rfloor)g(k)\)
我们在考虑对于函数 \(g\) 的处理:
\(\begin{aligned}g(x)=&\displaystyle\sum_{x\mid k}\displaystyle\sum_{i=1}^n\displaystyle\sum_{j=1}^m[\gcd(i,j)=k]\\=&\displaystyle\sum_{i=1}^n\displaystyle\sum_{j=1}^m[x\mid \gcd(i,j)]\\=&\displaystyle\sum_{i=1}^{\lfloor\frac{n}{x}\rfloor}\displaystyle\sum_{j=1}^{\lfloor\frac{m}{x}\rfloor}[1\mid \gcd(i,j)]\\=&\lfloor\dfrac{n}{x}\rfloor\lfloor\dfrac{m}{x}\rfloor\end{aligned}\)
我们在将函数 \(g\) 带回函数 \(f\),同时枚举 \(\lfloor\dfrac{k}{x}\rfloor\) 记为 \(t\):
\(f(x)=\displaystyle\sum_{t=1}^{\min(n,m)}\mu(t)\lfloor\dfrac{n}{tx}\rfloor\lfloor\dfrac{m}{tx}\rfloor\)
那么对于最后的答案我们只需要一个简单的容斥:
\(ans=\displaystyle\sum_{i=1}^b\displaystyle\sum_{j=1}^d[\gcd(i,j)=k]-\displaystyle\sum_{i=1}^{a-1}\displaystyle\sum_{j=1}^d[\gcd(i,j)=k]-\displaystyle\sum_{i=1}^b\displaystyle\sum_{j=1}^{c-1}[\gcd(i,j)=k]+\displaystyle\sum_{i=1}^{a-1}\displaystyle\sum_{j=1}^{c-1}[\gcd(i,j)=k]\)
通过上的函数 \(f,g\) 带入即可,通过整除分块可以得到时间复杂度 \(O(\sqrt{n})\)。

标签:dfrac,sum,莫比,mid,varphi,mu,反演,乌斯,displaystyle
From: https://www.cnblogs.com/OIerBoy/p/17753364.html

相关文章

  • 莫比乌斯反演 学习笔记
    前置知识整除分块把之前写的博客搬过来了模型求\(\large\sum^{n}_{i=1}\lfloor{\frac{n}{i}}\rfloor\)假设\(n\)等于10,我们可以列出下表:\(\i\)12345678910\(\frac{10}{i}\)10532211111如果我们的\(n\)更大时,我们可以发现\(\fra......
  • 莫比乌斯函数
    推荐视频:518筛法求莫比乌斯函数前提知识:莫比乌斯函数点击查看代码#include<bits/stdc++.h>usingnamespacestd;#defineLLlonglongconstintN=1e8+10;intp[N],cnt;intmu[N];//d[i]记录i的约数的和boolvis[N];voidget_mu(intn){//筛法求约数的个数 mu[......
  • 莫比乌斯反演小记
    基本内容莫比乌斯函数\(\mu\)定义为\(1\)的逆。一些小性质:\(\mu*1=\epsilon\)\(\mu*\text{id}=\varphi\)反演内容我的理解是:\[[a=1]=\sum\limits_{d|a}\mu(d)\]典型例题例1P2398GCDSUM求\[\sum\limits_{i=1}^n\sum\limits_{j=1}^n\gcd(i,j)\]来推下式......
  • 莫比乌斯反演乱写
    太久没有写莫反的题,忘完了。。。简单写写当总结常见数论函数\(e(x)=[x=1]\)\(I(x)=1\)\(id(x)=x\)以上函数完全积性\(\varphi(x)=\sum\limits_{i=1}^{x-1}[\gcd(i,x)==1]\)\(\mu=I^{-1}\)\(d(x)=\sum\limits_{i=1}^{x}[i\midx]\)以上是......
  • 「学习笔记」莫比乌斯反演
    开新坑了。QWQ前置芝士:数论分块。(之后再说。QWQ)积性函数定义一个数论函数\(f(n)\)满足\(f(xy)=f(x)\timesf(y)\)(\(\gcd(x,y)=1\)),则称\(f(n)\)是积性函数。莫比乌斯函数:\(\mu(n)=\begin{cases}1&n=1\\0&n\\text{含有平方因子}\\(-1)^k&k\text{为}\n\\text{的......
  • 可持久化非确定状态AC自动分块维护线段平衡仙人掌优化最小费用最大流预处理混合图上莫
    P8946TheLostSymbol这种类型的dp的特点就是大部分转移形如\(f(i,j)\rightarrowf(i+1,j+1)\)之类的,并且当以上转移出现时原数组被清空,这就可以用一个deque来维护,然后对于全局赋值/全局加,需要对每个位置维护一个时间戳,并记录上一次赋值/加是什么时候,以便标记下传。(貌似......
  • 『学习笔记』莫比乌斯反演
    对前置知识的再补充欧拉函数:其中一个性质:\[n=\sum_{d\midn}\varphi(d).\]用狄利克雷卷积表示:\[\operatorname{id}=\varphi*1.\]莫比乌斯函数:其中一个性质(或叫做定义式):\[\sum_{d\midn}\mu(d)=[n=1].\]用狄利克雷卷积表示:\[\varepsilon=\mu*1.\]......
  • ENVI+ERDAS实现Hyperion叶绿素含量反演:经验比值法、一阶微分法
    本文介绍基于ENVI与ERDAS软件,依据Hyperion高光谱遥感影像,采用经验比值法、一阶微分法等,对叶绿素含量等地表参数加以反演的具体操作。目录1前期准备与本文理论部分1.1几句闲谈1.2背景知识1.2.1Hyperion数据介绍1.2.2遥感图像分类方法1.2.3大气校正1.2.4反演算法2基于经验......
  • 反演小记
    反演反演,可以理解为两个事物通过某种关系的互相转化。基本推论设\(F,G\),满足\(F(n)=\sumV[n,i]G(i)\),其中\(V\)为矩阵,将\(F,G\)看成列向量,可以写做\(F=V*G\),那么我们可以容易推出\(G=V^{-1}*F\),这就是反演的过程,而一些特殊的反演即是利用了\(V\)和\(V^{-1}......
  • 【算法学习笔记】max-min容斥 极值反演
    max-min容斥(极值反演)即为下式;\[\begin{equation}\max\{S\}=\sum_{T\subseteqS}(-1)^{|T|+1}\min\{T\}\label{aa}\end{equation}\]\[\begin{equation}\min\{S\}=\sum_{T\subseteqS}(-1)^{|T|+1}\max\{T\}\label{ab}\end{equation}\]证明:证明\(\ref......