首页 > 技术文章 > 莫比乌斯反演(小结)

jd1412 2020-07-18 13:05 原文

莫比乌斯反演在简化一些的数学算式,优化时间的方面效果显著,属于一种数学方法

在一些数学问题中,使用反演与整出分块的方法可以大大优化程序的运行效率


前置知识

符号:

  • 规定:a⊥b的意思为:a与b互质
  • 规定:[ X ] 的意思为:判断 X 是否为真,是则返回 1 ,否则返回 0,相当于一个bool类型的变量
  • ps: 本文的数论函数一般用加粗字母(在数学公式中函数的为数论函数,未加粗 (不会))或希腊字母表示,如f ,g , \(\mu\)

数论函数

  • 定义:函数 f(x)为数论函数,是指其定义域为正整数域,陪域(可理解为值域)为复数域的函数
  • 定义:数论函数加法: ( f+g )(x)=f(x)+g(x)
  • 定义:数论函数数乘: x · f(n) = (x f) (n)
  • 定义:积性函数:设有数论函数 f ,对于任意互质的两个正整数 x,y , 均有: \(f(xy)= f(x) \times f(y)\),则称函数 f 为积性函数
  • 定义:完全积性函数:设有数论函数 f ,对于任意的两个正整数 x , y ,均有: \(f( xy ) = f( x ) \times f( y )\),则称函数 f 为完全积性函数
常见的积性函数:

1.除数函数:\(\sigma_k(n)\),表示 n 的所有约数的 k 次幂之和

2.欧拉函数:\(\varphi(n)\),表示不超过 n 且与 n 互质的正整数的个数

3.莫比乌斯函数:\(\mu(n)\),当 n = 1 时,函数的值为 1 ,当 n 可以表示为k个不同的质数之积时,函数的值为 \((-1)^k\),其余情况下,函数的值为 0

常见的完全积性函数

1.幂函数:\(Id_k(n) = n^k\)

2.单位函数:\(\varepsilon(n)\),当 n 等于 1 时,函数的值为 1 ,当 n 大于 1 时,函数的值为 0

  • 既然积性函数的性质为:\(f(nm)=f(n) \times f(m)\),那么就可以对一个积性函数利用线性筛在\(O(n)\)的复杂度内将 1~n 之间的所有函数值处理得到

狄利克雷卷积

  • 定义:狄利克雷卷积: 设有两个数论函数 fg ,则定义 f * g (n)= \(\sum_{i|n} f (i) g (\frac{n}{i})\) ,其中卷积符号为 *,而非乘法运算符\(\times\)
狄利克雷卷积满足一些性质:

1.交换律:f * g (n) = g * f (n) ,将其展开,即可证明

2.结合律:( f * g ) * h (n) = f * ( g * h ) (n) , 将其展开,变为:\(\sum_{i(jh)=n}{(f(i)g(h))h(k)}\),交换枚举顺序,有:\(\sum_{i(jh)=n}{f(i)(g(h)h(k))}\),即可证明

3.分配率:f * h + g * h =(f + g )* h , 还是展开:有:\(\sum_{ik=n}{f(i)h(k)} + \sum_{jk=n}{g(j)h(k)}\),做一步提取公因式,有:\(\sum_{k|n}{h(k)[g(\frac{n}{k})+f(\frac{n}{k})]} = \sum_{k|n}{h(k)}{(f+g)(\frac{n}{k})}\),故等式成立

4.数乘:(x f)* g = x ( f * g )(显然易证)

5.单位元: f * \(\varepsilon\) = f

6.逆元:设有数论函数 f ,则存在一个数论函数 g ,使得 f * g = \(\varepsilon\) ,则称数论函数 gf 的逆元

7.若 fg 为积性函数,则 f * g 亦为积性函数

8.\(\mu * I = \varepsilon (\varepsilon(n) = [n=1] , I(n)=1)\)

9.\(\varphi * I = id ~ (id(n) = n)\)

简证:该式子运用卷积,可以转化为: \(\sum_{d|n}{\varphi(d)}\)

\(n\) 有且仅有一个质因子时,可以转化为 \(\sum_{i=1}^{k}{p^i} \times \frac{p-1}{p} + 1\)
,即为一个简单的等比数列,经化简,即可得到该式等于 \(n\)

其他情况下,即为每一个质因子都做如上式运算,即有 \(\sum_{j=1}^{k}{\sum_{i_j=1}^{m_j}{\varphi({p_j}^{i_j})}}\) ,就等于 \(n\)

10.\(\mu * id = \varphi\)


莫比乌斯反演

莫比乌斯函数

上面已经给出了莫比乌斯函数的定义,这里讲几个性质

1.对于任意的正整数 n ,\(\sum_{d|n}{\mu(d)=[n=1]}\)

2.对于任意的正整数 n ,\(\sum_{d|n}{\frac{\mu(d)}{d}} = \frac{\varphi(n)}{n}\)

对于第一条性质,使用\(\mu\)的定义即可证明

对于第二条性质,它巧妙地将莫比乌斯函数 \(\mu\) 和欧拉函数 \(\varphi\) 结合到了一起,作为一条比较神奇的性质

对于第一条性质,还有一个较为常用的推论为:\([gcd(i,j)=1]=\sum_{d|gcd(i,j)}{\mu(d)}\)

证明也比较简单,直接应用第一条性质,将\(n\)换成\(gcd(i,j)\)即可

莫比乌斯反演

  • 引理:\(\mu * 1 = \varepsilon\) (其中 “1” 为返回值常数函数)

  • 定理:由引理即可得到莫比乌斯反演的式子:若有 \(g(n) = \sum_{d|n}{f(d)}\) , 则有 \(f(n) = \sum_{d|n}{\mu{(\frac{n}{d})}g{(d)}}\)

    同时,我们可以得到另一个方向上的莫比乌斯反演:若有 \(g(x) = \sum_{x|y}{f(y)}\) , 则有 \(f(x) = \sum_{x|y}{\mu{(\frac{y}{x})}g{(y)}}\)

到此,莫比乌斯反演的内容就大致讲完了,下面放几道例题

推荐阅读