原文地址:
** https://www.cnblogs.com/fallingdust/p/15055548.html**
前言&简介
莫比乌斯反演是数论数学中很重要的内容,可以用于解决很多组合数学的问题。
——百度百科......
很多人会觉得莫比乌斯反演是一种很高级的数学知识,其实你会发现......这只是基础。当然言归正传,学号莫比乌斯反演得先学会一个叫做整除分块的东西。(数论分块......)
莫比乌斯函数
- 莫比乌斯反演是建立在容斥数学基础上出现的一种用于解决组合数学问题的优化算法,本质上是关于各个函数的相互转化的神奇算法,我们可以换个角度来理解:对于一些我们很难求解的函数,我们可以从它的倍数或者约束考虑,二莫比乌斯反演就是这种反演算法中比较重要的一类。
下面开始介绍
前置知识
引理1:
$$
\forall a,b,c\in Z,\lfloor \frac{a}{bc} \rfloor = \lfloor \frac{\lfloor \frac{a}{b} \rfloor}{c} \rfloor
$$
证明:(简略)
$$
\frac{a}{b}=\lfloor \frac{a}{b} \rfloor+r(0<=r<1)\\
\implies \lfloor \frac{a}{bc} \rfloor=\lfloor \frac{a}{b} \frac{1}{c} \rfloor=\lfloor \frac{1}{c}(\lfloor \frac{a}{b} \rfloor+r) \rfloor=\lfloor \frac{\lfloor \frac{a}{b} \rfloor}{c} +\frac{r}{c}\rfloor=\lfloor \frac{\lfloor \frac{a}{b} \rfloor}{c} \rfloor\\
(因为0<=r<c\implies \lfloor \frac{r}{c}\rfloor=0)(由于r已经无法再基于a/bc提供一个整数值所以可以消去)
$$
引理2
$$
\forall n\in N_{+},|\{\lfloor \frac{n}{d} \rfloor|d\in N_{+},d<=n\}|<=\lfloor 2\sqrt n \rfloor
$$
$|V|$表示集合$V$的元素个数。
证明方式:考虑$d$和$\sqrt n$的大小关系,就可以找到取值方案。
数论分块
先谈一下整除分块(数论分块,名字不一样而已......),它存在的意义就是:解决某些神奇出题人的刁难,其作用:在$O(\sqrt n)$时间内解决$\sum_{i=1}^n\lfloor \frac{n}{i} \rfloor$的问题。
首先我们可以思考一下,对于$\lfloor \frac{n}{i} \rfloor$,他的一些值有什么规律存在,那么很容易发现:在一些情况,$\lfloor \frac{n}{i} \rfloor$值是相同的,同时呈现一种块状分布,并且存在一定规律,我们可以打一下这个表:
n | 10 | 10 | 10 | 10 | 10 | 10 | 10 | 10 | 10 | 10 |
---|---|---|---|---|---|---|---|---|---|---|
i | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
$ \lfloor\frac{n}{i} \rfloor $ | 10 | 5 | 3 | 2 | 2 | 1 | 1 | 1 | 1 | 1 |
肉眼可见的块状分布,那我们也可以思考原因。
对于任意一个$i(i<=n)$,我们需要找一个最大的$j(i<=j<=n)$,使得$\lfloor \frac{n}{i} \rfloor=\lfloor \frac{n}{j} \rfloor$,那么这时候我们就可以求出:$j=\lfloor \frac{n}{\lfloor \frac{n}{i} \rfloor} \rfloor$,那么我们很容易知道此时$j<=n$,那么如何推导$j>=i$?
$$
\lfloor \frac{n}{i} \rfloor<=\frac{n}{i}\\
\implies \lfloor \frac{n}{\lfloor \frac{n}{i} \rfloor} \rfloor>=\lfloor \frac{n}{\frac{n}{i}} \rfloor=\lfloor i \rfloor=i\\
\implies i<=\lfloor \frac{n}{\lfloor \frac{n}{i} \rfloor} \rfloor=j
$$
我们也就可以知道:$j_{max}=\lfloor \frac{n}{\lfloor \frac{n}{i} \rfloor} \rfloor$,此时,数论分块结束,我们求和就可以了。
积性函数
定义:
若函数$f(x)$满足:$f(1)=1$且$\forall x,y\in N_{+},gcd(x,y)=1$都有$f(xy)=f(x)f(y)$,则称它为积性函数。
若函数$f(x)$满足:$f(1)=1$且$\forall x,y\in N_{+}$都有$f(xy)=f(x)f(y)$,则称它为完全积性函数。
性质:若$f(x),g(x)$均为积性函数,那么则以下函数也为积性函数:
$$
\begin{align}
h(x)&=f(x^p)\\
h(x)&=f^p(x)\\
h(x)&=f(x)g(x)\\
h(x)&=\sum_{d|x}f(d)g(\frac{x}{d})
\end{align}
$$
积性函数的例子:
- 单位函数:$\varepsilon(n)=[n=i]$ (完全积性)
- 恒等函数:$id_k(n)=n^k$,通常地,我们将$id_1(n)$记作$id(n)$。(完全积性)
- 常数函数:$1(n)=1$(完全积性)
- 除数函数:$\sigma_k(n)=\sum_{d|n}d^k$,通常地,我们将$\sigma_0(n)$记作$d(n)$或者$\tau(n)$,$\sigma_1(n)$记作$\sigma(n)$。
- 欧拉函数:$\varphi(n)=\sum_{i=1}^{n}[gcd(i,n)=1]$
- 莫比乌斯函数:$\left\{ \begin{array}{**lr**} 1 &n=1&\\ 0 &\exists d>1,d^2|n&\\ (-1)^{\omega(n)} &otherwise&\ \end{array} \right.$其中,$\omega(n)$表示$n$的本质不同的质因子个数,这是一个加性函数。
迪利克雷卷积(Dirichlet卷积)
定义
卷积专指的是函数见乘法运算,迪利克雷卷积是其中一种。
对于两个数论函数$f(x)$和$g(x)$,将他们进行迪利克雷卷积,结果$h(x)$定义为:
$$
h(x)=\sum_{d|x}f(d)g(\frac{d}{x})=\sum_{ab=x}f(a)g(b)
$$
可以简写成:
$$
h=f*g
$$
性质:
- 交换律:$f*g=g*f$
- 结合律:$(f*g)*h=f*(g*h)$
- 分配律:$(f+g)*h=f*h+g*h$
- 等式的性质:$f=g$的充要条件:$f*h=g*h$,其中$h(x)$满足$h(1)\ne0$。
证明......:充分性(从左到右)是显然的,那么来整一下必要性(逆向):
假设$x$,使$f(x)\ne g(y)$。那么我们要找到最小的$y\in N$,使得$f(y)\ne g(y)$成立
设$r=f*h-g*h=(f-g)*h$
则:
$$ \begin{align} r(y)&=\sum_{d|y}(f(d)-g(d))h(\frac{y}{d})\\ &=(f(y)-g(y))h(1)\\ &\ne-0 \end{align} $$
则$f*h,g*h$,在$y$出取值不同,那么$f*h\ne g*h$。矛盾,所以必要性成立。(反证法,原因是:正明题=逆否命题)
单位元:单位函数$\varepsilon$是迪利克雷卷积运算中的单位元,即:对于任意函数$f$,存在$\varepsilon*f=f$。
逆元:对于任意一个满足$f(x)\ne0$的数论函数,假设存在一个$g(x)$,满足$g*f=\varepsilon$,则称$g(x)$是$f(x)$的逆元。并且有且仅有1个.
推论:
两个积性函数的迪利克雷卷积也是积性函数
积性函数逆元也是积性函数
莫比乌斯反演
定义
$ \mu $为莫比乌斯函数,定义:
$$
\mu=
\left\{
\begin{array}{**lr**}
1 &n=1\\
0 &n含有平方因子\\
(-1)^k &k为n本质不同质因子个数(可以理解为唯一分解定理下面的p_k)
\end{array}
\right.
$$
解释:
令$n=\Pi^k_{i=1}p^{ci}_{i}$,其中$p_i$为质因子,$c_i>=1.$定义的表示:
-
$n=1$时,$\mu(n)=1$;
-
对于$n\ne1$时:
-
a.当存在$i\in[1,k]$,使得$c_i>1$时,$\mu(n)=0$,这就意味着:任何一个质因子出现吵过一次,$\mu(n)=0$
b.当存在$i\in[1,k]$,使得$c_i=1$时,$\mu(n)=(-1)^k$,这表示:每个质因数仅出现1次,(唯一分解定理中底数的指数均为1)此时$\mu(n)=(-1)^k$,这个$k$,就是所谓的本质不同的质因子。
性质
$$ \sum_{d|n}\mu(d)=\left\{ \begin{array}{**lr**} 1&n=1\\ 0&n\ne1\\ \end{array} \right. $$
即:$\sum_{d|n}\mu(d)=\varepsilon(n),\mu*1=\varepsilon$
证明:
设$n=\Pi^k_{i=1}p_i^{c_i},n’=\Pi^k_{i=1}p_i$
$$
\sum_{d|n}\mu(d)=\sum_{d|n’}\mu(d)=\sum^k_{i=0}C^i_k·(-1)^k=(1+(-1))^k
$$
根据二项式定理$k=0 => n=1$,这就可以证明.
拓展结论
有兴趣可以自己证明一下,并不麻烦:
$$ [gcd(i,j)=1]=\sum_{d|gcd(i,j)}\mu(d)\\ \varphi*1=id $$
莫比乌斯反演
公式
设$f(n),g(n)$为两个数论函数
如果有$f(n)=\sum_{d|n}g(d)$,那么有$g(n)=\sum_{d|n}\mu(d)f(\frac{n}{d})$
如果有$f(n)=\sum_{n|d}g(d)$,那么有$g(n)=\sum_{n|d}\mu(d)f(\frac{d}{n})$
证明
$$ \sum_{d|n}\mu(d)f(\frac{n}{d})=\sum_{d|n}\mu(d)\sum_{k|\frac{n}{d}}g(k)=\sum_{k|n}g(k)\sum_{d|\frac{n}{k}}\mu(d)=g(n) $$
这时,用$\sum_{d|n}g(d)$代换$f(\frac{n}{d})$,同时进行求和变换顺序。所以当$n=k$,原式等价于:$\sum_{k|n}[n=k]·g(k)=g(n)$
卷积做法:
$$ f=g*1\\ f*\mu=g*1*\mu\\ 1*\mu=\varepsilon\\ f*\mu=g*\varepsilon\\ f*\mu=g $$
感觉acwing的latex格式需要更新一下......有点影响效果。。。