狄利克雷卷积&莫比乌斯反演
昨天刚说完不搞数论了,刚看到一个\(gcd\)的题目dalao用这个做了,虽然比正解麻烦,还是打算学一学了
数论函数:
数论函数的定义:
数论函数亦称算术函数,一类重要的函数,指定义在正整数集上的实值或复值函数,更一般地,也可把数论函数看做是某一整数集上定义的函数
常见积性函数
\(\mu(n)\)
\(~~~~~~~~n=1:\mu(n)=1\),\(n=\prod\limits_{i=1}^k p_i:\mu(n)=(-1)^k\),\(d\)有任何质因子幂次大于等于\(2:\mu(n)=0\)
\(d(n)\)
\(~~~~~~~~n\)的约数个数
\(\sigma(n)\)
\(~~~~~~~~n\)的约数和函数
\(\varphi(n)\)
\(~~~~~~~~\)小于等于\(n\)且与其互质的个数
完全积性函数
\(\epsilon(n)\)
\(~~~~~~~~\epsilon(n)=[n=1]\)
\(I(n)\)
\(~~~~~~~~I(n)=1\)恒等函数
\(id(n)\)
\(~~~~~~~~id(n)=n\)
卷积:
设\(f(x),g(x)\)是两个数论函数(以自然数集为定义域的复数值函数),则卷积运算\(f*g\)定义为:
\((f\ast g)(n) = \sum_{d\mid n}{f(d)g(\frac{n}{d})}\)
当然还有另一种更直观的写法:
\((f\ast g)(n) = \sum_{ij=n}{f(i)g(j)}\)
函数的一些简单性质:
交换律:
\((f * g)(n) = (g * f)(n)\)
证明:这不显然的嘛
结合律:
\(\begin{align} ((f\ast g)\ast h)(n) &= (f\ast (g\ast h))(n) \end{align}\)
\(\begin{align} ((f\ast g)\ast h)(n) &= \sum_{lk=n}(f\ast g)(l)h(k) \\ &= \sum_{lk=n}\left(\sum_{ij=l}f(i)g(j)\right)h(k)\\ &= \sum_{ijk=n} f(i)g(j)h(k) \end{align}\)
\(\begin{align} (f\ast (g\ast h))(n) &= \sum_{il=n}f(i)(g\ast h)(l) \\ &= \sum_{il=n}f(i)\left(\sum_{jk=l}g(j)h(k)\right)\\ &= \sum_{ijk=n} f(i)g(j)h(k) \end{align}\)
莫比乌斯函数性质一
\(\sum_{d|n}\mu(d)=[n=1]\)
证明:
将\(n\)分解: \(n=P_1^{a_1}\times P_2^{a_2} ...... P_k^{a_k}\)
不需要考虑\(a_k>1\)的情况,因为定义当\((a_k>1)\)时,\(\mu(a_k)=0\)
只需要化成幂为\(1\),\(m=P_1\times P_2\times P_3\times P_4...\times P_k\)
这样的话问题就变成了从k个因数中取奇数个和偶数个的种数的差的值是否为-1 可以很快的列出
莫比乌斯函数性质二
\(\dfrac{\varphi(x)}{n}=\sum\limits_{d|n} \dfrac{\mu(d)}{d}\)
先来推倒一个简单的式子\((\mu*I)=\epsilon\)
\((\mu*I)(n)=\sum\limits_{d|n}\mu(d)I(\dfrac{n}{d})\)
\(~~~~~~~~~~~~~~~=\sum\limits_{d|n}\mu(d)\)
\(~~~~~~~~~~~~~~~=[n=1]\)
\(~~~~~~~~~~~~~~~=\epsilon\)
同理,下面的式子也是这个道理
证明:
\(\because \varphi*I=id \Rightarrow \varphi*I*\mu=id*\mu \Rightarrow \varphi * \epsilon=id*\mu\)
\(\therefore \varphi=id*\mu \Rightarrow \varphi(n)=\sum\limits_{d|n}\mu(d)id(\dfrac{n}{d})\)
证毕:\(\therefore \dfrac{\varphi(x)}{n}=\sum\limits_{d|n} \dfrac{\mu(d)}{d}\)
莫比乌斯反演
满足函数
\(~~~~~~~~~~F(n)=\sum_{d|n}f(d)\)
那么存在
\(~~~~~~~~~~f(n)=\sum_{d|n}\mu(d)F(\lfloor\frac{n}{d}\rfloor)\)
证法:
\(\sum_{d|n}\mu(d)F(\lfloor\frac{n}{d}\rfloor)=\sum_{d|n}\mu(d)\sum_{i|\lfloor\frac{n}{d}\rfloor}f(i)\)
\(~~~~~~~~~~~~~~~~~~~~~~~~~~~=\sum_{i|n}f(i)\sum_{d|\lfloor\frac{n}{i}\rfloor}\mu(d)\) 利用性质一,当\(i=n\)时,后项才为\(1\)
\(~~~~~~~~~~~~~~~~~~~~~~~~~~~=f(n)\)
反过来莫比乌斯反演还有另一种形式
满足函数
\(~~~~~~~~~~F(n)=\sum_{n|d}f(d)\)
那么存在
\(~~~~~~~~~~f(n)=\sum_{n|d}\mu(\frac{d}{n})F(d)\)