莫比乌斯函数学习笔记
积性函数
若函数
-
f(1) = 1 - 若正整数
a 与正整数b 互质,则f(a \times b) = f(a) \times f(b) 。
则称这个函数为积性函数,若对于任意
狄利克雷卷积
定义两个数论函数
一个性质:若
f 和g 都是积性函数,则函数h 也是积性函数。莫比乌斯函数
莫比乌斯函数的定义是:
- 如果
n=1 ,则\mu(n)=1 。 - 如果
n 的因子中有大于1 的平方数,则\mu(n)=0 。 - 如果
n 是无平方因子的数,且n 是k 个质数的积,也就是n=p_1 \times p_2 \times \dots \times p_k ,其中p_i 是互不相同的质数,则\mu(n) = (-1)^k 。
莫比乌斯函数是积性函数。
证明:设正整数
n 和m 互质。若n 或m 中有平方因子,则n \times m 也有这个因子。\mu(n \times m) =\mu(n) \times \mu(m) = 0 ,符合条件。否则,设n 有s 个质因子,m 有t 个质因子。则\mu(n \times m) = (-1)^{s+t} = (-1)^s \times (-1)^t = \mu(n) \times \mu(m) ,符合条件。
莫比乌斯函数有一个性质:
- 如果
n=1 ,则\sum_{d \mid n} \mu(d) = 1 。 - 否则,
\sum_{d \mid n} \mu(d) = 0 。
证明:
n=1 的情况证明起来非常简单,因为他只有一个因子1 。对于其他的n \ne 1 ,我们可以令n = p_1^{a_1} \times p_2^{a_2} \times \dots \times p_k^{a_k} 。若
n 没有平方因子,则他的因数就是所有p_i 的子集乘积。对于每一个子集大小为m 的因数d ,都有\mu(d) = m 。所以:\sum_{d \mid n} \mu(d) = \sum_{m=0}^{k} \binom{k}{m} \times (-1)^m=(1-1)^k=0 若
n 有平方因子,对于所有的平方因子d ,都肯定满足\mu(d)=0 ,所以他们都是没用的,不需要管。剩下的那些就跟前面证明过的一样了。
线性筛求莫比乌斯函数
只需在标记合数的部分再加上一个莫比乌斯函数的就行了,详细方法见我的这篇题解。
简单来说,就是令
- 如果
i 是p 的倍数,则\mu(j) = 0 ,因为他有平方因子。 - 否则
\mu(j)= \mu(i) \times \mu(p) = \mu(i) \times (-1) 。
一道简单的例题
前置知识:数论分块,如果你们不会,可以看我的这篇文章。
我们先看题目。
人话:求
解题思路
式子等同于求
根据莫比乌斯的性质,可以得到:
调换求和顺序,得:
消掉一些没用的循环:
然后就是我在数论分块里讲到的二维数论分块了。
莫比乌斯反演
我们设
定理指出:如果对于任意正整数
那么:
什么!这都能扯到莫比乌斯函数!太逆天了!
证明:假设
g(n) = \sum_{d \mid n} f(d) ,我们需要证明:f(n)=\sum_{d \mid n} \mu(\frac{n}{d}) \times g(d) 把已知条件代入:
f(n)=\sum_{d \mid n} \mu(\frac{n}{d}) \times \sum_{k \mid d} f(k)。 有点难看,把两个循环搞一起:
f(n)=\sum_{d \mid n} \sum_{k \mid d} \mu(\frac{n}{d}) \times f(k) 观察一下这两个循环,
d \mid n ,且k \mid d ,所以k \mid n 。我们可以设d = k \times s ,那么(k \times s) \mid n ,也就是s \mid \frac{n}{k} 。所以:f(n)=\sum_{k \mid n} f(k) \times \sum_{s \mid \frac{n}{k}} \mu(\frac{n}{k \times s}) 因为
\frac{n}{k \times s} = \frac{\frac{n}{k}}{s} ,所以:\sum_{s \mid \frac{n}{k}} \mu(\frac{n}{k \times s})=\sum_{s \mid \frac{n}{k}}\mu(\frac{\frac{n}{k}}{s})。 然后,我们就会发现,这个循环其实就是遍历了
\frac{n}{k} 的因数,所以我们可以给他搞简单一点:f(n) = \sum_{k \mid n} f(k) \times \sum_{m \mid \frac{n}{k}} \mu(m) 根据莫比乌斯函数的性质,有:
- 如果
n=k ,则\sum_{m \mid \frac{n}{k}} \mu(m) = 1 。- 否则,
\sum_{m \mid \frac{n}{k}} \mu(m) = 0 。所以:
\sum_{k \mid n} f(k) \times \sum_{m|\frac{n}{k}} \mu(m) = f(n) \times 1 + \sum_{k \mid n,k \ne n} f(k) \times 0 = f(n) 证毕。