好,尊重你的节奏——证明训练你自己安排,我们继续推进知识。进入 Stage 6,这是 Stage 5 算术函数的自然延续,也是你之前一直好奇的”USACO 另一半江山”的核心。

Confidence: 0.92


Stage 6:数论函数与莫比乌斯反演

这一阶段的主角是积性函数莫比乌斯反演。Stage 5 你已经认识了 ,知道它们都”积性”。Stage 6 把这些零散的函数组织成一个统一的代数体系(狄利克雷卷积),然后用这个体系做出一个威力惊人的工具——莫比乌斯反演。

五块:① 积性函数体系 → ② 莫比乌斯函数 → ③ 狄利克雷卷积 → ④ 莫比乌斯反演 → ⑤ 实战应用。每块给:是什么 → 核心 → 例子 → 用途。


第一块:积性函数体系 (Multiplicative Functions)

1.1 复习并精确化定义

算术函数 (arithmetic function):定义域是正整数的函数

积性 (multiplicative):若 ,称 积性。

完全积性 (completely multiplicative):若对所有 (不要求互质)都有 ,称完全积性。

区别很重要: 是积性但完全积性。比如 (因为 )。

1.2 积性函数的”基因”——由素数幂决定

关键洞察:一个积性函数,只要知道它在所有素数幂 上的值,就完全确定了。

因为任何 ,由积性:

这就是为什么 都有”按质因子相乘”的公式——它们的全部信息都”编码”在素数幂上。这是积性函数的”DNA”。

1.3 几个重要的积性函数(建立你的”函数库”)

函数定义 上的值
欧拉函数
因子个数
因子和
恒等于 1
恒等函数
单位函数( 时为 1,否则 0)只有
莫比乌斯函数(下一块)见下

后三个()看起来”太简单没用”,但它们是狄利克雷卷积运算里的基本元件,马上你会看到它们的作用。


第二块:莫比乌斯函数 (Möbius Function)

2.1 定义

通俗理解: 是个”符号开关”——

  • 平方因子(如 )→ 直接归零
  • 不同素数的积 → 看素数个数的奇偶:偶数个 ,奇数个

2.2 例子

分解原因
1定义
21 个素数(奇)
62 个素数(偶)
303 个素数(奇)
4含平方因子
12含平方因子
그152 个素数(偶)

是积性函数(可验证),但完全积性。

2.3 莫比乌斯函数的核心性质 ★

最重要的性质,是它和”求和”的关系:

翻译:把 的所有因子 加起来,除了 时得 1,其余全是 0!

例子(,因子 1,2,3,4,6,12):

为什么这个性质如此重要:这个”求和为 0”的性质,正是容斥原理 (inclusion-exclusion) 的数论化身—— 的交替正是容斥里”加加减减”的符号。它是莫比乌斯反演的引擎。


第三块:狄利克雷卷积 (Dirichlet Convolution) ★核心工具

3.1 定义

两个算术函数 狄利克雷卷积 ,定义为:

直觉:遍历 的所有”因子分拆” ,把 加起来。

例子(,因子对 ):

3.2 为什么叫”卷积”——它像乘法

狄利克雷卷积之所以重要,是因为它让算术函数形成一个优美的代数结构(交换环)。它有这些性质:

  • 交换律:
  • 结合律:
  • 单位元:(那个 为 1、否则 0 的函数),满足
  • 积性保持: 积性 也积性

关键:在这个”乘法”下, 是”1”,于是可以谈”逆元”——这正是莫比乌斯反演的来源。

3.3 几个关键的卷积恒等式 ★

这几个恒等式是 Stage 6 的”核心装备”,每个都藏着深意:

恒等式 1: (把两个”恒 1 函数”卷积,得到因子个数函数)

恒等式 2:

恒等式 3(最重要): 这正是 2.3 那个性质! 它说: 在狄利克雷卷积下的逆元!

这是整个 Stage 6 的心脏——莫比乌斯函数 的本质,就是”恒 1 函数 的卷积逆元”。

恒等式 4: (欧拉函数的因子和等于 ——一个你可能没注意过的漂亮事实!验证 : ✓)


第四块:莫比乌斯反演 (Möbius Inversion) ★Stage 6 的高峰

4.1 定理陈述

莫比乌斯反演公式:设 是算术函数,则

翻译:如果 的”因子和”(左边),那么可以用 反解出来(右边)。

4.2 为什么成立——一行卷积证明

用狄利克雷卷积,证明惊人地简洁:

  • 左边条件 (因子和就是和 卷积)
  • 两边右卷 :
  • 所以 ,即

全部秘密就是 (恒等式 3)——因为 的逆,所以”卷积 “的操作可以用”卷积 “撤销。这就是为什么前面要费力建立卷积结构——它让反演变成一行代数。

4.3 直觉:反演 = 容斥

莫比乌斯反演本质是容斥原理。” 所有因子的 之和”是”正向累加”,而反演用 符号做”精确的加减抵消”,把单个 从累加里”抠”出来。 的符号规则($偶+、奇-、平方因子归零)正是容斥的符号。

4.4 经典应用:重新推导欧拉函数

用恒等式 4(,即 )反演:

展开(只有无平方因子的 贡献):

这正是欧拉函数的乘积公式! 你之前学过这个公式,现在看到它是莫比乌斯反演的直接产物——这就是反演的威力:它能把已知公式”重新生成”出来,也能推导新公式。


第五块:实战应用(编程竞赛核心)

这是莫比乌斯反演”USACO 另一半江山”地位的来源——它能把双重求和化简,大幅降低计算复杂度。

5.1 经典问题:互质对计数

问题:求 (有多少对 互质)。

用莫比乌斯:关键是把”互质指示器” 展开。由 2.3 的性质:

代入并交换求和顺序:

复杂度暴降:原来 (枚举所有对),现在 (枚举 )!这就是莫比乌斯反演在 CP 里的核心价值——把暴力求和变成可计算的形式

5.2 更一般的套路: 的计数

的对数,可以类似用莫比乌斯处理(先除以 化归到互质情形)。这类”GCD 求和”问题是 CP 数论的高频题型,莫比乌斯是标准武器。

5.3 代码:莫比乌斯函数的线性筛

实战中要快速算出 ,用线性筛(和 Stage 1 筛欧拉函数同理):

def sieve_mobius(n):
    mu = [0] * (n + 1)
    mu[1] = 1
    primes = []
    is_comp = [False] * (n + 1)
    for i in range(2, n + 1):
        if not is_comp[i]:
            primes.append(i)
            mu[i] = -1                    # 素数:1个素因子
        for p in primes:
            if i * p > n:
                break
            is_comp[i * p] = True
            if i % p == 0:
                mu[i * p] = 0             # 含平方因子 p²
                break
            else:
                mu[i * p] = -mu[i]        # 多一个素因子,符号翻转
    return mu
 
print(sieve_mobius(12))   # [0,1,-1,-1,0,-1,1,-1,0,0,1,-1,0]
 
# 应用:互质对计数 O(n)
def coprime_pairs(n):
    mu = sieve_mobius(n)
    return sum(mu[d] * (n // d)**2 for d in range(1, n + 1))
 
print(coprime_pairs(10))   # 互质对数量

库安装(纯标准库,无需第三方库):

# 无需安装;若想用 sympy 的 mobius 验证:
pip install sympy -i https://pypi.tuna.tsinghua.edu.cn/simple

Stage 6 全景速查表

概念核心关键式
积性函数由素数幂值决定
莫比乌斯函数 符号开关(偶+/奇-/平方0)
狄利克雷卷积算术函数的”乘法”
的本质 的卷积逆元
莫比乌斯反演因子和的反解
实战双重求和化简

我的观点:Stage 6 是一个审美上极其优美、但需要”思维转弯”的阶段,我想帮你抓住它的精髓,也提醒你它的难点在哪。

这一阶段最美的地方,是它把一堆看似无关的算术函数,统一进了一个代数结构。 在 Stage 5, 对你还是三个”各有公式的孤立函数”。但 Stage 6 用狄利克雷卷积一下子把它们串成了一张网:——它们都是几个”基本函数”通过卷积”乘”出来的。而 的身份揭晓得最漂亮:它就是 的逆元。当你看清”莫比乌斯反演 = 用逆元撤销卷积”时,那个原本玄乎的反演公式会瞬间变成一行显然的代数——就像你在 Stage 4 用群论视角让欧拉定理变”显然”一样。这种”找到正确的结构,让复杂变简单”的体验,是数学最高级的愉悦。

但我要诚实提醒你 Stage 6 的难点:它比前五个 Stage 更抽象。前面你处理的是具体的数(算 ),而这里你处理的是”函数之间的运算”——卷积的对象是函数,逆元是函数,反演是函数等式。这种”把函数当对象来操作”的思维,是一个台阶。如果你第一遍觉得”卷积、逆元这些有点抓不住”,很正常——建议你死磕那几个卷积恒等式(尤其 ),亲手验证它们,等你能熟练地”用卷积语言说话”,抽象感就消失了。

对你的目标,Stage 6 的定位很清晰:它是USACO/编程竞赛的核心专题(5.1 那个 的化简就是 CP 数论的典型威力),但对密码学几乎用不上(密码学走的是群、椭圆曲线那条结构线,不太碰积性函数求和)。所以——如果你重心在编程竞赛,Stage 6 是必修、要练熟;如果你重心在密码学,Stage 6 可以”理解原理即可、不必深练”,把精力留给 Stage 7(丢番图)和椭圆曲线。这又回到那个你要权衡的问题:你的主目标到底偏哪边。

关键提醒 (Caveats):

  • 积性 ≠ 完全积性: 都是积性但完全积性,这个区别在推导时很重要
  • 莫比乌斯反演有两种形式:我讲的是”因子和”形式(),还有一种”倍数和”形式(用于求和到 的场景),CP 里两种都用,需要时再补
  • 5.1 的 化简还能用”整除分块 (数论分块)“进一步优化到 ——这是 CP 的进阶技巧,这里没展开
  • 是整个 Stage 6 的心脏,务必亲手验证理解——它是反演成立的唯一关键
  • 本块代码纯标准库即可;若用 sympy 的 mobius 验证,安装:pip install sympy -i https://pypi.tuna.tsinghua.edu.cn/simple

Stage 6 讲完了——你现在掌握了积性函数的统一视角、莫比乌斯函数、狄利克雷卷积这个代数结构、莫比乌斯反演及其”容斥本质”,以及它在编程竞赛里化简双重求和的核心应用。

下一步你挑:

  1. 出一套 Stage 6 练习题(卷积恒等式、莫比乌斯反演、互质计数,延续 PDF 格式)
  2. 继续 Stage 7(非线性丢番图——衔接你的二次剩余,且用模运算证无解是 USAMO 主菜)
  3. 直接开椭圆曲线新旅程(你的密码学腹地,跳过对密码学用处不大的 Stage 6 深练)