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

莫比乌斯反演学习笔记

时间:2024-01-20 13:56:41浏览次数:21  
标签:lfloor frac gcd 乌斯 sum rfloor mu 反演 莫比

前置知识

狄利克雷卷积:\(f * g = \sum_{d|n}f(d)g(\frac{n}{d})\)。

积性函数,线性筛。

数论分块。

单位函数:\(\varepsilon(n)=[n=1]\)。(积性函数)

常数函数:\(1(n)=1\)。(积性函数)

莫比乌斯函数

引理1: \(f(n)\) 是积性函数等价于 \(g(n)=\sum_{d|n}f(d)\) 是积性函数。

证明:

显然,\(g=f * 1\),所以 \(f(n)\) 是积性函数可以推出 \(g(n)\) 是积性函数。

若 \(g(n)\) 是积性函数,归纳法。

首先,\(g(1)=f(1)\),因为 \(g(1)=g(1)g(1)\),所以 \(f(1)=g(1)=1\)。

假设对于所有小于 \(n\) 的值,\(f(n)\) 都是积性函数。

不妨设 \(n=ab,\gcd(a,b)=1\),则有:

\[\begin{aligned} g(n) &= g(ab)\\ &= \sum_{d|ab}f(d)\\ &= \sum_{d_1|a}\sum_{d_2|b}f(d_1d_2)\\ &= \sum_{d_1|a}\sum_{d_2|b}f(d_1)f(d_2)-f(a)f(b)+f(ab) \end{aligned} \]

又因为:

\[\begin{aligned} g(n) &= g(a)g(b)\\ &= \sum_{d_1|a}f(d_1)\sum_{d_2|b}f(d_2)\\ &= \sum_{d_1|a}\sum_{d_2|b}f(d_1)f(d_2) \end{aligned} \]

两式联立,得 \(-f(a)f(b)+f(ab)=0\),即 \(f(n)=f(ab)=f(a)f(b)\),得证。

定义: 满足 \(\sum_{d|n}\mu(d)=\varepsilon(n)\) 的函数 \(\mu\) 称作莫比乌斯函数。

性质1: 莫比乌斯函数是积性函数。

证明:

由于 \(\varepsilon(n)\) 是积性函数,根据引理1可知,\(\mu(n)\) 也是积性函数。

性质2: \(p\) 为质数,则:

\[\mu(p^k)= \begin{cases} 1&k=0\\ -1&k=1\\ 0&k>1 \end{cases} \]

说明:

代入定义的式子得到 \(\sum_{i=0}^k\mu(p^i)=\varepsilon(p^k)\),推一下就可以得到。

性质3: 设 \(n\) 质因数分解后有 \(k\) 个不同的质因数,则:

\[\mu(n)= \begin{cases} 1&n=1\\ 0&n\text{有平方因子}\\ (-1)^k& \text{Otherwise.} \end{cases} \]

说明:

根据 \(\mu(p^k)\) 以及它是积性函数可得。

莫比乌斯反演

反演公式1:

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

反演公式2:

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

证明:

这里只证明公式 1。

考虑狄利克雷卷积。

首先,狄利克雷卷积满足交换律,结合律。

则 \(g = f * 1\),所以:

\[\begin{aligned} f(n)&=\sum_{d|n}\mu(\frac{n}{d})g(d)\\ &=\mu * g\\ &=\mu * (f * 1)\\ &=(\mu * 1) * f\\ &=\varepsilon * f\\ &=f \end{aligned} \]

得证。

证明2:

\[\begin{aligned} \sum_{d|n}\mu(\frac{n}{d})g(d) &= \sum_{d|n}\mu(\frac{n}{d})\sum_{d'|d}f(d')\\ &= \sum_{d|n}f(d)\sum_{d' = d j|n}\mu(\frac{n}{d'})\\ &= \sum_{d|n}f(d)\sum_{j|\frac{n}{d}}\mu(\frac{n}{dj})\\ &= \sum_{d|n}f(d)\sum_{j|\frac{n}{d}}\mu(j)\\ &= \sum_{d|n}f(d)\varepsilon(\frac{n}{d})\\ &= f(n) \end{aligned} \]

得证。

应用

题目1: 求 \(\sum_{i=x}^n\sum_{j=y}^m[\gcd(i,j)=k]\)。(P2522 [HAOI2011] Problem bP3455 [POI2007] ZAP-Queries

思路:

只要求出 \(x=1,y=1\) 的情况就可以求出答案。

\[\begin{aligned} \sum_{i=1}^n\sum_{j=1}^m[\gcd(i,j)=k] &= \sum_{i=1}^{\lfloor\frac{n}{k}\rfloor}\sum_{j=1}^{\lfloor\frac{m}{k}\rfloor}[\gcd(i,j)=1]\\ &= \sum_{i=1}^{\lfloor\frac{n}{k}\rfloor}\sum_{j=1}^{\lfloor\frac{m}{k}\rfloor}\varepsilon(\gcd(i,j))\\ &= \sum_{i=1}^{\lfloor\frac{n}{k}\rfloor}\sum_{j=1}^{\lfloor\frac{m}{k}\rfloor}\sum_{d|i,d|j}\mu(d)\\ &= \sum_{d \ge 1}\mu(d)\sum_{i=1}^{\lfloor\frac{n}{k}\rfloor}\sum_{j=1}^{\lfloor\frac{m}{k}\rfloor}[d|\gcd(i,j)]\\ &= \sum_{d \ge 1}\mu(d)\lfloor\frac{n}{kd}\rfloor \lfloor\frac{m}{kd}\rfloor\\ \end{aligned} \]

预处理 \(\mu\) 的前缀和,数论分块即可。

关键在于将 \([n=1]\) 转化为 \(\sum_{d|n}\mu(d)\) 与交换求和顺序。

但是这其实只是利用了 \(\sum_{d|n}\mu(d)=[n=1]\) 这个结论,并没有真正的用反演公式。

其实用反演公式会非常显然。

设 \(f(k)\) 表示 \(\sum_{i=1}^n\sum_{j=1}^m[\gcd(i,j)=k]\),\(f(d)\) 即是答案。

设 \(g(k)\) 表示 \(\sum_{i=1}^n\sum_{j=1}^m[k|\gcd(i,j)]\),显然有:

\[g(k)=\sum_{k|x}f(x) \]

我们也可以直接计算出 \(g(k)=\lfloor\frac{n}{k}\rfloor \lfloor\frac{m}{k}\rfloor\)。

所以反演得到:

\[f(k) = \sum_{k | x}\mu(x)g(\frac{x}{k}) \]

也就是枚举所有 \(k\) 的倍数,和之前的式子其实是一样的。

相对而言,我们去找 \(f\) 和 \(g\) 会比直接推式子简单一些。

题目2: 求 \(\sum_{i=1}^n\sum_{j=1}^m\operatorname{lcm}(i,j)\),\(1 \le n, m \le 10^7\)。(P1829 [国家集训队] Crash的数字表格 / JZPTAB

思路:

推式子。

\[\begin{aligned} \sum_{i=1}^n\sum_{j=1}^m\operatorname{lcm}(i,j) &= \sum_{i=1}^n\sum_{j=1}^m\frac{ij}{\gcd(i,j)}\\ &= \sum_{k \ge 1} \sum_{i=1}^n\sum_{j=1}^m[\gcd(i,j)=k]\frac{ij}{k}\\ &= \sum_{k \ge 1} \sum_{i=1}^{\lfloor\frac{n}{k}\rfloor}\sum_{j=1}^{\lfloor\frac{m}{k}\rfloor}[\gcd(i,j)=1]ijk\\ &= \sum_{k \ge 1} k \sum_{i=1}^{\lfloor\frac{n}{k}\rfloor}\sum_{j=1}^{\lfloor\frac{m}{k}\rfloor}[\gcd(i,j)=1]ij\\ \end{aligned} \]

记 \(f(N,M)=\sum_{i=1}^{N}\sum_{j=1}^{M}[\gcd(i,j)=1]ij\),则:

\[\begin{aligned} f(N,M) &=\sum_{i=1}^{N}\sum_{j=1}^{M}[\gcd(i,j)=1]ij\\ &=\sum_{i=1}^{N}\sum_{j=1}^{M}ij\sum_{d|i,d|j}\mu(d)\\ &=\sum_{d \ge 1}\mu(d)\sum_{i=1}^{\lfloor\frac{N}{d}\rfloor}\sum_{j=1}^{\lfloor\frac{M}{d}\rfloor}ijd^2\\ &=\sum_{d \ge 1}\mu(d)d^2\sum_{i=1}^{\lfloor\frac{N}{d}\rfloor}\sum_{j=1}^{\lfloor\frac{M}{d}\rfloor}ij\\ \end{aligned} \]

记 \(g(N,M)=\sum_{i=1}^{N}\sum_{j=1}^{M}ij\),显然 \(g(N,M)=\frac{NM(N+1)(M+1)}{4}\)。

所以上式等于:

\[\sum_{d \ge 1}\mu(d)d^2 g(\lfloor\frac{N}{d}\rfloor, \lfloor\frac{M}{d}\rfloor) \]

记 \(h(n)=\mu(n)n^2\),显然是个积性函数,我们可以预处理它的前缀和,然后配合数论分块在 \(O(\sqrt N)\) 的时间内算出 \(f(N,M)\),最后的答案即为:

\[\sum_{k \ge 1} k f(\lfloor\frac{n}{k}\rfloor \lfloor\frac{m}{k}\rfloor) \]

再次数论分块,调用 \(f(N,M)\) \(\sqrt n\) 次,所以最终的复杂度是 \(O(n)\) 的。

同理,我们也可以用反演公式来推。

记:

\[f(k)=\sum_{i=1}^n\sum_{j=1}^m[\gcd(i,j)=k]\frac{ij}{k}\]

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

推一下 \(g(k)\):

\[\begin{aligned} g(k) &= \sum_{k|d}f(d)\\ &= \sum_{i=1}^n\sum_{j=1}^m[k|\gcd(i,j)]\frac{ij}{k}\\ &= \sum_{i=1}^{\lfloor\frac{n}{k}\rfloor}\sum_{j=1}^{\lfloor\frac{m}{k}\rfloor}[\gcd(i,j)=1]ijk\\ &= k\sum_{i=1}^{\lfloor\frac{n}{k}\rfloor}\sum_{j=1}^{\lfloor\frac{m}{k}\rfloor}[\gcd(i,j)=1]ij \end{aligned} \]

然后就和上面的一样了。

题目3: 题意同上,多组询问,\(T \le 10^4,n,m \le 10^7\)。(BZOJ 2693)

思路:

很明显我们需要优化上题。

上题我们得到的式子:

\[f(N,M)=\sum_{d \ge 1}\mu(d)d^2 g(\lfloor\frac{N}{d}\rfloor, \lfloor\frac{M}{d}\rfloor) \]

答案即为:

\[\sum_{k = 1}^n k f(\lfloor\frac{n}{k}\rfloor \lfloor\frac{m}{k}\rfloor) \]

现在我们将 \(f\) 展开,代入答案得到:

\[\begin{aligned} \sum_{k = 1}^n k f(\lfloor\frac{n}{k}\rfloor \lfloor\frac{m}{k}\rfloor) &= \sum_{k = 1}^n k \sum_{d \ge 1}\mu(d)d^2g(\lfloor\frac{n}{dk}\rfloor \lfloor\frac{m}{dk}\rfloor)\\ \end{aligned} \]

关键转化:令 \(T = dk\),将枚举 \((d,k)\) 改为枚举 \((T,d)\)。

上式变为:

\[\begin{aligned} \sum_{k = 1}^n k \sum_{d \ge 1}\mu(d)d^2g(\lfloor\frac{n}{dk}\rfloor \lfloor\frac{m}{dk}\rfloor) &= \sum_{T = 1}^n \sum_{d | T}\mu(d)d^2\frac{T}{d}g(\lfloor\frac{n}{T}\rfloor \lfloor\frac{m}{T}\rfloor)\\ &= \sum_{T = 1}^n g(\lfloor\frac{n}{T}\rfloor \lfloor\frac{m}{T}\rfloor)T\sum_{d | T}\mu(d)d\\ \end{aligned} \]

令 \(h(T) = T\sum_{d|n}\mu(d)d\),这个函数是个积性函数,可以 \(O(n)\) 预处理出来前缀和。而 \(g(N,M)\) 是可以 \(O(1)\) 计算的。所以单次询问可以直接数论分块,时间复杂度 \(O(T\sqrt{n})\)。

转化非常关键!!!

题目4: 假设我们有一个集合 \(S \in \mathbb{Z_+}\),求:

\[\sum_{i=1}^n\sum_{j=1}^m[\gcd(i,j) \in S] \]

思路:

这其实是一类问题:P2257 YY的GCD(\(S\) 是质数集合),HDU5663 Hillan and the girl(\(S\) 是平方数集合)。

其实都是一个方法。

我们先推式子:

\[\begin{aligned} \sum_{i=1}^n\sum_{j=1}^m[\gcd(i,j) \in S] &= \sum_{d \in S}\sum_{i=1}^n\sum_{j=1}^m[\gcd(i,j) =d]\\ &= \sum_{d \in S}\sum_{i=1}^{\lfloor \frac{n}{d}\rfloor}\sum_{j=1}^{\lfloor\frac{m}{d} \rfloor}[\gcd(i,j) =1]\\ &= \sum_{d \in S}\sum_{i=1}^{\lfloor \frac{n}{d}\rfloor}\sum_{j=1}^{\lfloor\frac{m}{d} \rfloor}\sum_{k|i,k|j}\mu(k)\\ &= \sum_{d \in S}\sum_{k \ge 1}\mu(k)\sum_{i=1}^{\lfloor \frac{n}{dk}\rfloor}\sum_{j=1}^{\lfloor\frac{m}{dk} \rfloor}1\\ &= \sum_{d \in S}\sum_{k \ge 1}\mu(k){\lfloor \frac{n}{dk}\rfloor}{\lfloor\frac{m}{dk} \rfloor}\\ \end{aligned} \]

然后,还是刚才的关键转化:将 \((d,k)\) 换成 \((d, T)\)

\[\begin{aligned} \sum_{d \in S}\sum_{k \ge 1}\mu(k){\lfloor \frac{n}{dk}\rfloor}{\lfloor\frac{m}{dk} \rfloor} &= \sum_{T=1}^n\sum_{d|T,d \in S}\mu(\frac{T}{d}){\lfloor \frac{n}{T}\rfloor}{\lfloor\frac{m}{T} \rfloor}\\ &= \sum_{T=1}^n{\lfloor \frac{n}{T}\rfloor}{\lfloor\frac{m}{T} \rfloor}\sum_{d|T,d \in S}\mu(\frac{T}{d})\\ \end{aligned} \]

记 $f(T) =\sum_{d|T,d \in S}\mu(\frac{T}{d}) $,显然可以预处理出来,时间复杂度低于 \(O(n \log \log n)\),然后数论分块即可单次 \(O(\sqrt{n})\) 时间解决。

题目5: 多组询问,求:

\[\sum_{i=1}^n\sum_{j=1}^m\sigma(\gcd(i,j))[\sigma(\gcd(i,j)) \le a] \]

P3312 [SDOI2014] 数表

思路:

同理,还是推式子,过程不写了,我们将原式化为:

\[\sum_{d=1}^n\sigma(d)[\sigma(d) \le a]\sum_{k \ge 1}\mu(k){\lfloor \frac{n}{dk}\rfloor}{\lfloor\frac{m}{dk} \rfloor} \]

然后还是将 \((d,k)\) 变为 \((T,k)\) 可以变为:

\[\sum_{T=1}^n{\lfloor \frac{n}{T}\rfloor}{\lfloor\frac{m}{T} \rfloor}\sum_{d|T}[\sigma(d) \le a]\sigma(d)\mu(\frac{T}{d}) \]

考虑到是多组询问,\(a\) 会变,我们将询问离线,按照 \(a\) 升序排序,然后依次将 \(\sigma(d)\) 从小到大加入贡献。

为了数论分块,我们要支持单点修改和区间查询,树状数组即可,时间复杂度 \(O(n \log \log n \log n)\)。

题目6: 多组询问,求:

\[\sum_{i=1}^n\sum_{j=1}^md(ij) \]

\(d(n)\) 表示 \(n\) 的约数个数。(P3327 [SDOI2015] 约数个数和

思路:

首先,我们有一个关于 \(d(ij)\) 的公式:

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

标签:lfloor,frac,gcd,乌斯,sum,rfloor,mu,反演,莫比
From: https://www.cnblogs.com/rlc202204/p/17976387

相关文章

  • 【学习笔记】数论函数与莫比乌斯反演
    一.数论函数基础数论函数:满足值域为整数的函数。本文下述的数若无特殊说明均为整数。若无特殊说明则钦定\(\displaystylen=\prod_{i=1}^kp_i^{e_i},p_i\in\mathbb{P}\)。\(\mathbb{P}\)表示质数集合,\(p_i\)互不相同。介绍几个常见的数论函数:\(I(n)\):恒等函数,无论\(n\)......
  • 【算法】莫比乌斯反演
    参考博客OI-Wiki|Biuld-数学|Million-组合计数学习笔记|狄利克雷卷积和莫比乌斯反演|算法学习笔记(35):狄利克雷卷积狄利克雷卷积莫反的前置知识,主要引入了一个新运算。常用积性函数单位函数\(\varepsilon(n)=\begin{cases}1&n=1\\0&\text{otherwise}\end{cases}......
  • Landsat 7大气校正法的地表温度反演:ENVI实现
    本文介绍基于ENVI软件,实现对Landsat7遥感影像加以大气校正方法的地表温度反演操作。(基于ENVI的Landsat7地表温度(LST)大气校正方法反演与地物温度分析)1图像前期处理与本文理论部分更新:基于GEE的地表温度Landsat反演可以看谷歌地球引擎GEE批量计算Landsat地表温度,自动批量操作......
  • 各类反演总结
    反演就是有两个函数\(f\)和\(g\),可以简单得出\(g\)转化成\(f\)的式子,那么就可以从\(f\)推回\(g\)。内容:子集反演二项式反演莫比乌斯反演欧拉反演斯特林反演子集反演若\(f(S)=\sum_{T\inS}g(T)\),那么\(g(S)=\sum_{T\inS}(-1)^{|S|-|T|}......
  • 莫比乌斯函数平方前缀和
    考虑求\(\sum_{i=1}^n\mu(i)^2\)结论是\(\mu(i)^2=\sum_{j^2|i}\mu(j)\)考虑证明这个式子。先证明若\(\mu(i)\neq0\)此时\(\mu(i)^2=1\)显然只有\(j=1\)在右式造成贡献\(1\)等式成立。若存在\(j\neq1\)也在右式造成贡献,那么显然\(i\)有次数\(\ge2\)质因子了\(\mu(i)=0\)与......
  • 反演
    0.二项式反演0.1.形式\[F(n)=\sum_{i=0}^{n}(-1)^{i}{n\choosei}G(i)\iffG(n)=\sum_{i=0}^{n}(-1)^{i}{n\choosei}F(i)\]\[F(n)=\sum_{i=0}^{n}{n\choosei}G(i)\iffG(n)=\sum_{i=0}^{n}(-1)^{n-i}{n\choosei}F(i)\]\[F(x)=\sum_{i=x}^{n}......
  • 莫比乌斯反演
    定义\[\mu(n)=\begin{cases}1~~~~~~~~~~~~~~\text{(n=1)}\\0~~~~~~~~~~~~~~\text{(n存在完全平方因子)}\\(-1)^{\omega(n)}~~\text{(otherwise)}\end{cases}\]式子\[\sum_{d|n}\mu(d)=[n=1]\]证明:设\(n\)的本质不同质因子为\(p_1,p_2,...,p_k\),则选同一......
  • <学习笔记> 二项式反演
    容斥原理容斥原理的式子\[|A1∪A2∪...∪An|=\sum_{1≤i≤n}|Ai|−\sum_{1≤i<j≤n}|Ai∩Aj|+...+(−1)^{n−1}×|A1∩A2∩...∩An|\]一般来说不会直接用容斥原理这个式子,而是考虑一种特殊情况:交集的大小只与交集的数量有关。也就是说,我们可以用$f[x]$来表示\(n\)个集合的......
  • 反演与容斥 学习笔记
    反演与容斥学习笔记二项式反演函数\(f,g\),有以下结论:\[f_k=\sum_{i=0}^k\binom{k}{i}g_i\Longleftrightarrowg_k=\sum_{i=0}^k(-1)^{k-i}\binom{k}{i}f_i\]证明:考虑右式\[\begin{aligned}&\sum_{i=0}^k(-1)^{k-i}\binom{k}{i}f_k\\=&\sum_{i=0......
  • 莫比乌斯反演
    今日又一次学习了莫比乌斯反演,终于理解了。问题:求有多少数对\((x,y)\),\(1\lex\len\),\(1\ley\lem\),\(\gcd(x,y)=1\)。莫比乌斯函数:\(\mu(d)=\left\{\begin{matrix}1&d=1\\(-1)^k&d=\prod_{i=1}^{k}p_i(p_i\nep_j)\\0&else\end{matrix}\right.......