莫比乌斯acm实战

437 阅读2分钟

参考博客链接,部分内容参考《初等数论及其应用》

一些约定

为了便于说明,本文使用了一些数论中的常用约定,如下:

1. 艾弗森约定

[expresion]bool 表达式,值为 01
当且仅当 expresion 为真时为 1 ,否则为 0

2. 最大公因子

(i,j) 表示 gcd(i,j)

3. 平方因子

是平方数的因子,即可以写成 k^2 的因子 x

4. 平方因子数

含有平方因子的数 ###3 4. 算术(唯一)分解定理
每个大于 1 的正整数都可以被唯一地写成素数的乘积,在乘积中的素因子按照非降序排列

5. 算术函数

定义域是正整数的函数

6. 和函数

f 是一个算术函数,那么

F(n)=\sum_{i|n}{f(d)}

代表 fn 的所有正因子处的值之和.函数 F 称为 f 的和函数.

7. 乘(积)性函数

如果算术函数 f 对任意两个互素的正整数 nm ,均有 f(mn)=f(m)f(n) ,就称为积性函数
如果算术函数 f 对任意两个正整数 nm ,均有 f(mn)=f(m)f(n) ,就称为完全积性函数

8. 积性函数的性质

如果 f 是一个积性函数,且对 n 有素幂因子分解 n=p_1^{a_1}p_2^{a_2}...p_s^{a_s},那么 f(n)=f(p_1^{a_1})f(p_2^{a_2})...f(p_s^{a_s})
如果 f 是积性函数,那么 f 的和函数 F 也是积性函数

根据基本性质,简单分解和式证明

反过来, 如果 f 的和函数 F 是积性函数,那么 f 也是积性函数

根据莫比乌斯反演证明加简单分解和式证明

莫比乌斯函数

\mu(n)=
\begin{cases}
1  & \text{如果 $n = 1$} \\
(-1)^k & \text{如果 $n = p_1p_2...p_k,\ p_i为不同的素数$ }\\
0 & \text{其他情形}
\end{cases}

可以理解成:

  1. n 大于 1 时且 n 是平方因子数时莫比乌斯函数值为 0
  2. 否则从 n 的唯一分解定理中根据素数的个数取奇偶即可

莫比乌斯函数的和函数性质

莫比乌斯函数的和函数满足

F(n)
=\sum_{i|n}{f(d)}
=\begin{cases}
1  & \text{若 $n = 1$} \\
0 & \text{若 $n > 1$ }
\end{cases}
=[\ n=1\ ]

证明:

首先考虑 n=1 的情形,有

F(n)=
\sum_{d|n}{\mu(d)}=
\mu(1)=
1

现在假设 p 是素数, k 是正整数,得到

\begin{align*}
F(p^k)
& = \sum_{1}^n{\mu(d)}=\mu(1)+\mu(p)+\mu(p^2)+...\mu(p^k)\\
& = 1+(-1)+0+...+0\\
& = 0
\end{align*}

其次,设 n 是一个大于等于 1 的正整数,其素幂因子分解为 n=p_1^{a_1}p_2^{a_2}...p_s^{a_s}
因为 \mu 是积性函数,故它的和函数 F(n)也是积性函数,所以F(n)=F(p_1^{a_1})F(p_2^{a_2})...F(p_s^{a_s})
因为等式右边每个因子都是 0,故 F(n)=0

莫比乌斯反演公式

f 是算术函数,Ff 的和函数,对任意正整数 n 满足

F(n)=\sum_{d|n}f(d)

则对任意正整数 n

f(n)=
\sum_{d|n}F(\frac{n}{d})

\frac{n}{d}显然等价于n/d,这里只是个人习惯

因子和与因子个数

因子和函数\sigma

整数 n 的所有正因子之和,记为 \sigma(n) 给出 1\leq n\leq12\sigma(n) 的值

n 1 2 3 4 5 6 7 8 9 10 11 12
\sigma(n) 1 3 4 7 6 12 8 15 13 18 12 28

因子个数函数\tau

整数 n 的所有正因子之和,记为 \tau(n) 给出 1\leq n\leq12\tau(n) 的值

n 1 2 3 4 5 6 7 8 9 10 11 12
\tau(n) 1 2 2 3 2 4 2 4 3 4 2 6

我们可以用和式记号来表示出 \sigma(n)\tau(n)

\sigma(n)={\sum_{d|n}{d}}\\
\tau(n)={\sum_{d|n}{1}}

由莫比乌斯反演公式,对所有正整数n

n=\sum\limits_{d|n}{\mu(n/d)\sigma(d)}\\
1=\sum\limits_{d|n}{\mu(n/d)\tau(d)}