莫比乌斯函数及反演 / 杜教筛入门

慢慢看就好了,没有什么难的东西。

\[\text{莫比乌斯反演}\]

\[\text{p1 : 积性函数}\]

定义 :

\(x \perp y\)\(f(x) \times f(y)=f(x \times y)\),\(f\) 为积性函数。

\[\text{p2 : 狄利克雷卷积}\]

定义 :

有任意函数 \(f\)\(g\) , 且卷积 \(h=(f*g)\)。它的样子一般长 :

\[(f*g)(n)\]

\(f,g\) 为两个函数,\(n\) 为参数。 其中 :

\[h(n)=\sum\limits_{d|n} f(d)g(\frac{n}{d})\]

其中 \(\sum\limits_{d|n}\) 中的 \(d\) 代表 \(n\) 的因数,也就是枚举每一个 \(n\) 的因子。

\[h(n)=\sum\limits_{d|n} f(d)g(\left\lfloor\frac{n}{d}\right\rfloor)\]

也有人是这样写的,\(d\)\(n\) 的因数没有影响。

假如 \(f\)\(g\) 都是积性函数,那么 \(h\) 也是积性函数。

证明 :

\[\begin{aligned}h(x) \times h(y) &= \sum\limits_{a|x} f(a)g(\frac{x}{a}) \times \sum\limits_{b|y} f(b)g(\frac{y}{b}) \\&= \sum\limits_{a|x} \sum\limits_{b|y} f(a)g(\frac{x}{a}) \times f(b)g(\frac{y}{b}) \\&= \sum\limits_{a|x} \sum\limits_{b|y} f(a \times b)g(\frac{x \times y}{a \times b}) \\&= \sum\limits_{a \times b|x \times y} f(a \times b)g(\frac{x \times y}{a \times b}) \\&= h(x \times y)\end{aligned}\]

由于 \(a \times b\) 可以构成 \(x \times y\) 的每一个因数,所以等式成立。因为 \(x \perp y\) 所以第 \(3\) 步可以化简为第 \(4\) 步。得证。

狄利克雷卷积满足交换律,结合律,分配律,及 :

\[(f*g)(n)=(g*f)(n)\]

\[(k*(f*g)(n))(n)=(g*(k*f)(n))(n)\]

\[((k(n)+f(n))*g)(n)=(k*g)(n)+(f*g)(n)\]

\[\text{p3 : 莫比乌斯函数}\]

一个正整数 \(n\) 可以写为 \(\sum\limits^m_{i=1} prim_i^{l_i}\) 的形式。

\[\mu(n)=\begin{cases}1 & (n=1) \\0 & (l\{\} >1) \\ (-1)^m & (l\{\} \leq 1)\end{cases}\]

\(\mu\) 是积性函数。假如 \(\mu(x) \times \mu(y)\) 中的一个的 \(l\{\}>1\),那么 \(\mu(x) \times \mu(y)=0\),且 \(\mu(x \times y)=0\)。由于 \(x \perp y\),所以它们不会有公共的质因子,那么如果 \(l_x\{\} \leq 1\)\(l_y\{\} \leq 1\) 的话,那么 \(l_{x \times y}\{\} \leq 1\),\(\mu(x \times y)=1\)

声明 :

\([A]\) (艾佛森括号) 就是 \(A=\begin{cases}1 & (\text{成立}) \\0 & (\text{不成立}) \end{cases}\) , \([a=x]\) 就是 \(a=\begin{cases}1 & (a=x) \\0 & (a \ne x) \end{cases}\)

积性函数 \(I(x)=1\)

结论 :
\[\sum\limits_{d|n}\mu(d)=[n=1]\]

证明 : 坑

\[\text{p4 : 莫比乌斯反演}\]

如果有 \(f(n)=\sum\limits_{d|n}g(n)\) , 则有 \(g(n)=\sum\limits_{d|n} f(\frac{n}{d})\ \mu(d)=\sum\limits_{d|n} f(d)\ \mu(\frac{n}{d})\)

证明 :

\[\begin{aligned} & \sum\limits_{d|n} \mu(d)\ f(\frac{n}{d}) \\ = & \sum\limits_{d|n}\mu(d)\sum\limits_{c|\frac{n}{d}}g(c) \\ = & \sum\limits_{d|n}g(d) \sum\limits_{c|\frac{n}{d}}\mu(c) \\ = & g(n) \end{aligned}\]

最后一步的化简,因为在除了 \(c=1\) 的时候,其它时候都是没有贡献的。那么 \(d=n\),留下贡献 \(g(n)\)

以及 :

\[\begin{aligned} & \sum\limits_{d|n} f(d)\ \mu(\frac{n}{d}) \\= & \sum\limits_{d|n}\mu(\frac{n}{d})\sum\limits_{c|d}g(c) \\ = &\sum\limits_{d|n}g(d)\sum\limits_{c|d}\mu(\frac{n}{c}) \\ = & g(n) \end{aligned}\]

得证。

以下的分数在没有特殊声明的情况下皆为整除。

a5ebc5d681eef759c89e9.png

\[\text{T1 :}[\gcd(i,j)=x]\]

\(\sum\limits^{n}_{i=1} \sum\limits^{m}_{j=1} [\gcd(i,j)=x]\)

\[\begin{aligned} & \sum\limits^{n}_{i=1} \sum\limits^{m}_{j=1}\ [\gcd(i,j)=x] \\= & \sum\limits^{\frac{n}{x}}_{i=1} \sum\limits^{\frac{m}{x}}_{j=1}\ [\gcd(i,j)=1] \\= & \sum\limits^{\frac{n}{x}}_{i=1} \sum\limits^{\frac{m}{x}}_{j=1}\ \sum\limits_{d|\gcd(i,j)}\mu(d) \\= & \sum\limits^{\frac{n}{x}}_{i=1} \sum\limits^{\frac{m}{x}}_{j=1}\ \sum\limits^{\gcd(i,j)}_{d=1}\mu(d) \times [d|\gcd(i,j)] \\= & \sum\limits^{\gcd(i,j)}_{d=1}\mu(d)\sum\limits^{\frac{n}{x}}_{i=1} \sum\limits^{\frac{m}{x}}_{j=1}\ [d|\gcd(i,j)] \\= & \sum\limits^{\gcd(i,j)}_{d=1}\mu(d) \times \left\lfloor \frac{\frac{n}{x}}{d} \right\rfloor \times \left\lfloor \frac{\frac{m}{x}}{d} \right\rfloor \\= & \sum\limits^{\min \{n,m\}}_{d=1}\mu(d) \times \left\lfloor \frac{\frac{n}{x}}{d} \right\rfloor \times \left\lfloor \frac{\frac{m}{x}}{d} \right\rfloor \\\end{aligned}\]

\(1\) 步化简 : 假设 \(x\)\(\gcd(i,j)\),那么 \(\gcd(\frac{i}{x},\frac{j}{x})=1\),所以我们就可以转化贡献。

\(2\) 步简化 : 根据莫比乌斯公式。

\(3\) 步简化 : 将 \(d\) 转化为一个一个枚举的模式,乘上贡献。

\(4\) 步简化 : 移一下。

\(5\) 步简化 : 只有 \(i\)\(j\) 都是 \(d\) 的倍数的时候才可能有贡献,而 \(i\)\(d\) 的倍数的贡献是 \(\frac{i}{d}\)。乘起来即可。

\(6\) 步简化 : \(\sum\) 失去上界,拟定一个上界。

变式 \(1\) :
\(\sum\limits^{n}_{i=1}\sum\limits^{m}_{j=1} \gcd(i,j)=\sum\limits^{\min\{n,m\}}_{d=1}\sum\limits^{n}_{i=1}\sum\limits^{m}_{j=1} [\gcd(i,j)=d]\)

\[\text{T2 :} \gcd(i,j)^x\]

\[\begin{aligned} & \sum\limits^{n}_{i=1}\sum\limits^{m}_{j=1} \gcd(i,j)^x \\ = & \sum\limits^{\min\{n,m\}}_{d=1} d^x \sum\limits^{n}_{i=1}\sum\limits^{m}_{j=1}\ [\gcd(i,j)=d] \\ = & \sum\limits^{\min\{n,m\}}_{d=1} d^x \sum\limits^{\frac{n}{d}}_{i=1}\sum\limits^{\frac{m}{d}}_{j=1}\ [\gcd(i,j)=1] \\ = & \sum\limits^{\min\{n,m\}}_{d=1} d^x \sum\limits^{\frac{\min \{n,m\}}{x}}_{c=1}\mu(c) \left\lfloor \frac{\frac{n}{d}}{c} \right\rfloor \left\lfloor \frac{\frac{m}{d}}{c} \right\rfloor \end{aligned}\]

这个式子显然是可以分块套分块达到 \(O(n)\) 的。至于要求询问,太高深,可以看下面的博客。

\[\text{T3 : } ij[\gcd(i,j)=k]\]

\[\begin{aligned} & \sum\limits^{n}_{i=1}\sum\limits^{m}_{j=1} i \times j\ [\gcd(i,j)=k] \\= & \sum\limits^{\frac{n}{k}}_{i=1}\sum\limits^{\frac{m}{k}}_{j=1} i j\times k^2 \times [\gcd(i,j)=1] \\= & \sum\limits^{\frac{n}{k}}_{i=1}\sum\limits^{\frac{m}{k}}_{j=1} i jk^2 \sum\limits_{d|\gcd(i,j)} \mu(d) \\= & \sum\limits^{\frac{n}{k}}_{i=1}\sum\limits^{\frac{m}{k}}_{j=1} i jk^2 \sum\limits^{\gcd(i,j)}_{d=1} \mu(d) \times [d|\gcd(i,j)] \\= & \sum\limits^{\min\{\frac{n}{k},\frac{m}{k}\}}_{d=1} \mu(d) \times \sum\limits^{\frac{\frac{n}{k}}{d}}_{i=1}\sum\limits^{\frac{\frac{m}{k}}{d}}_{j=1} i jk^2 \times d^2 \\= & k^2 \times \sum\limits^{\min\{\frac{n}{k},\frac{m}{k}\}}_{d=1}\mu(d)d^2 \sum\limits^{\frac{n}{kd}}_{i=1} i \sum\limits^{\frac{m}{kd}}_{j=1} j \\\end{aligned}\]

\(1\) 步化简 : 这题跟 \(\text{T1}\) 不同之处在于它有 \(ij\) 的贡献。这种情况下上界变成 \(\frac{n}{k}\)\(\frac{m}{k}\) 了以后,就要乘上 \(k^2\)

\(4\) 步化简 : 因为有了 \([d|\gcd(i,j)]\),所以乘它的代价就变成了上界 \(\div d\)。那这样子后面的贡献又变小了,再乘 \(d^2\)

\[\text{T4 : } lcm(i,j)\]

这个东西大概是这个样子的 :

\[\begin{aligned}& \sum\limits^{n}_{i=1}\sum\limits^{m}_{j=1} lcm(i,j) \\ = & \sum\limits^{n}_{i=1}\sum\limits^{m}_{j=1} \frac{ij}{\gcd(i,j)} \\ = & \sum\limits^{\min\{n,m\}}_{d=1}\sum\limits^{n}_{i=1}\sum\limits^{m}_{j=1} \frac{ij}{d} [\gcd(i,j)=d] \\= & \sum\limits^{\min\{n,m\}}_{d=1}\sum\limits^{\frac{n}{d}}_{i=1}\sum\limits^{\frac{m}{d}}_{j=1} \frac{ij}{d} \sum\limits_{g|\gcd(i,j)} \mu(g) \times d^2 \\ = & \sum\limits^{\min\{n,m\}}_{d=1}\sum\limits^{\frac{n}{d}}_{i=1}\sum\limits^{\frac{m}{d}}_{j=1} ijd \sum\limits_{g|\gcd(i,j)} \mu(g) \\= & \sum\limits^{\min\{n,m\}}_{d=1} \sum\limits^{d}_{g=1} \mu(g) [g|d] \sum\limits^{\frac{n}{d}}_{i=1}\sum\limits^{\frac{m}{d}}_{j=1} ijd \\= & \sum\limits^{\min\{n,m\}}_{d=1} d \sum\limits^{d}_{g=1} \mu(g) \sum\limits^{\frac{n}{d}}_{i=1}\sum\limits^{\frac{m}{d}}_{j=1} ij [g|\gcd(i,j)] \\ = & \sum\limits^{\min\{n,m\}}_{d=1} d \sum\limits^{d}_{g=1} \mu(g) \sum\limits^{\frac{\frac{n}{d}}{g}}_{i=1} i \sum\limits^{\frac{\frac{m}{d}}{g}}_{j=1} j \times g^2 \\ = &\sum\limits^{\min\{n,m\}}_{d=1} d \sum\limits^{d}_{g=1} \mu(g) g^2 \sum\limits^{\frac{n}{dg}}_{i=1} i \sum\limits^{\frac{m}{dg}}_{j=1} j \end{aligned}\]

\[\text{T5 :} d(ij)\]

\(d(x)\)\(x\) 的约数个数。

\[\begin{aligned}& \sum\limits^{n}_{i=1} \sum\limits^{m}_{j=1} d(i \times j) \\= & \sum\limits^{n}_{i=1} \sum\limits^{m}_{j=1} \sum\limits_{x|i}\sum\limits_{y|j} [\gcd(x,y)=1] \\= & \sum\limits^{n}_{i=1} \sum\limits^{m}_{j=1} \sum\limits_{x|i}\sum\limits_{y|j} \sum\limits_{d|\gcd(x,y)} \mu(d) \\= & \sum\limits^{\min\{n,m\}}_{d=1} \mu(d) \sum\limits^{n}_{i=1} \sum\limits^{m}_{j=1} \sum\limits_{x|i}\sum\limits_{y|j} [d|\gcd(x,y)] \\ = & \sum\limits^{\min\{n,m\}}_{d=1} \mu(d) \sum\limits^{n}_{i=1} \sum\limits^{m}_{j=1} \frac{n}{i} \frac{m}{j} [d|\gcd(x,y)] \\= & \sum\limits^{\min\{n,m\}}_{d=1} \mu(d) \sum\limits^{\frac{n}{d}}_{i=1} \sum\limits^{\frac{m}{d}}_{j=1} \frac{n}{id} \frac{m}{jd} \\= & \sum\limits^{\min\{n,m\}}_{d=1} \mu(d) \sum\limits^{\frac{n}{d}}_{i=1} \frac{n}{id} \sum\limits^{\frac{m}{d}}_{j=1} \frac{m}{jd}\end{aligned}\]

鸣谢:

\(\texttt{An\_Account}\)\(\texttt{GoldenPotato}\)
\(\texttt{alpha1022}\)
\(\texttt{Sengxian's Blog}\) 莫比乌斯反演简要笔记

\[\text{杜教筛}\]

杜王町到处都是人才

定义积性函数 \(f\),杜教筛的作用是快速求 \(\sum\limits^{n}_{i=1} f(i)\)

声明 :

定义积性函数 \(g\) , 定义 \(h(n)=(f*g)(n)\) , 那么显然 \(\sum\limits^{n}_{i=1} h(i)=\sum\limits^{n}_{i=1}\sum\limits_{d|i} g(d)f(\frac{i}{d})\)。定义 \(S(n)=\sum\limits^{n}_{i=1} f(i)\)

\[\begin{aligned} \sum\limits^{n}_{i=1} h(i) = & \sum\limits^{n}_{i=1}\sum\limits_{d|i} g(d)f(\frac{i}{d}) \\\sum\limits^{n}_{i=1} h(i)= & \sum\limits^{n}_{d=1} g(d) \sum\limits^{ \frac{n}{d}}_{i=1}f(i) \\\sum\limits^{n}_{i=1} h(i)= & \sum\limits^{n}_{d=1} g(d)\ S(\frac{n}{d}) \\\sum\limits^{n}_{i=1} h(i)= &g(1) \times S(n)+\sum\limits^{n}_{d=2} g(d)\ S(\frac{n}{d}) \\g(1)S(n)= &\sum\limits^{n}_{i=1} h(i)-\sum\limits^{n}_{d=2} g(d)\ S(\frac{n}{d}) \\S(n)= & \frac{\sum\limits^{n}_{i=1} h(i)-\sum\limits^{n}_{d=2} g(d)\ S(\frac{n}{d})}{g(1)}\end{aligned}\]

\(4\) 步化简 : 就是把 \(d=1\) 的贡献提取出来。

随后可以对 \(S(\frac{n}{d})\) 进行迭代即可,就会有一些没有被计算到。杜教筛正是钻了这个空子,达到低于线性的做法。已经计算过的贡献可以用 \(hash\) 或者平衡树存起来。

\[\text{T1 :} \sum \mu\]

如果 \(I(x)=1\),那我们知道 \((\mu * I)(n)=[n=1]\)。我们就把 \(g\) 代为 \(I\),把 \(h\) 代为 \([n=1]\)

\[\begin{aligned} S(n)= & \frac{\sum\limits^{n}_{i=1} h(i)-\sum\limits^{n}_{d=2} g(d)\ S(\frac{n}{d})}{g(1)} \\= & \frac{1-\sum\limits^{n}_{d=2} S(\frac{n}{d})}{1} \\ = & 1-\sum\limits^{n}_{d=2} S(\frac{n}{d})\end{aligned}\]

时间复杂度为 \(O(n^{\frac{2}{3}})\),复杂度证明 : \(\texttt{Ark}\)

\[\text{T2 :} \sum \phi\]

如果看过某个大佬的博客应该知道一个被民间定义为欧拉反演的东西,也就是 \((\phi*I)(n)=n\)

\[\begin{aligned} S(n)= & \frac{\sum\limits^{n}_{i=1} h(i)-\sum\limits^{n}_{d=2} g(d)\ S(\frac{n}{d})}{g(1)} \\= & \frac{\sum\limits^{n}_{i=1} i- \sum\limits^{n}_{d=2} S(\frac{n}{d})}{1} \\= & \frac{i(i+1)}{2}- \sum\limits^{n}_{d=2} S(\frac{n}{d})\end{aligned}\]

鸣谢 :

\(\texttt{peng-ym}\)

转载于:https://www.cnblogs.com/FibonacciHeap/articles/10984275.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值