莫比乌斯反演

简介

莫比乌斯反演是数论上的一种处理技巧。对于一些函数 \(f(n)\),如果很难直接求出它的值,而容易求出倍数和或约数和 \(F(n)\),那么可以通过莫比乌斯反演来求得 \(f(n)\) 的值。
备注:在本文中,是用 \([A]\) 表示 \(A\) 命题的真值表达,\(A\) 为真则为 \(1\),否则为 \(0\)

莫比乌斯函数

定义

\(n=p_1^{q_1}\cdot p_2^{q_2}\cdots p_k^{q_k}\),其中 \(p\) 为素数,则定义莫比乌斯函数 \(\mu(n)\) 如下:

\[\mu(n)=\begin{cases}1 & n=1 \\ (-1)^k & \displaystyle \prod_{i=1}^k q_i =1 \\ 0 & \exists \ q_i > 1 \end{cases} \]

通俗的来讲,莫比乌斯函数的定义如下:

  1. 莫比乌斯函数 \(mu(n)\)的定义域是\(N\)
  2. \(mu(1)=1\)
  3. 当n存在平方因子时,\(mu(n)=0\)
  4. 当n是素数或奇数个不同素数之积时,\(mu(n)=-1\)
  5. 当n是偶数个不同素数之积时,\(mu(n)=1\)

性质

性质一:莫比乌斯函数是积性函数。

\[\mu(a)\mu(b)=\mu(a\cdot b),\ (a,b)=1 \]

应用:根据这一性质,可以使用线性筛,在 \(O(n)\) 的时间预处理出所有 \([1,n]\) 内的 \(\mu\) 值。

void sieve() {
    fill(prime, prime + maxn, 1);
    mu[1] = 1, tot = 0;
    for (int i = 2; i < maxn; i++) {
        if (prime[i]) {
            prime[++tot] = i, mu[i] = -1;
        }
        for (int j = 1; j <= tot && i * prime[j] < maxn; j++) {
            prime[i * prime[j]] = 0;
            if (i % prime[j] == 0) {
                mu[i * prime[j]] = 0;
                break;
            } else {
                mu[i * prime[j]] = -mu[i];
            }
        }
    }
}

补充:在数论上积性函数的定义。

\(f(n)\) 为一个定义在 \(N_+\) 上的函数。若对于任意 \((x,y)=1\)\(f(x\cdot y)=f(x)f(y)\), 则称 \(f(n)\) 为一个积性函数;若对于任意 \(x\)\(y\) 均有 \(f(x\cdot y)=f(x)f(y)\),则称 \(f(n)\) 为一个 完全积性函数

性质二

\[\displaystyle \sum_{d|n}\mu(d)=[n=1] \]

证明
\(n=1\) 时显然。

\(n\neq 1\) 时,设 \(n=p_1^{q_1}\cdot p_2^{q_2}\cdots p_m^{q_m}\)

\(n\) 的所有因子中,\(\mu\) 值不为 \(0\) 的只有所有质因子次数都为 \(1\) 的因子,其中质因子个数为 \(r\) 个的有 \(C_k^r\) 个。
那么显然有:\(\displaystyle \sum_{d|n}\mu(d)=C_k^0-C_k^1+C_k^2+\cdots+(-1)^kC_k^k=\sum_{i=0}^k(-1)^iC_k^i\)
由二项式定理知 \(\displaystyle (x+y)^n=\sum_{i=0}^nC_n^ix^iy^{n-i}\)。令 \(x=-1,y=1\),代入即可得证。

莫比乌斯反演

形式一

\[\displaystyle F(n)=\sum_{d|n}f(d)\implies f(n)=\sum_{d|n}\bigg(\mu(d)\cdot F\Big(\frac{n}{d}\Big)\bigg) \]

证明

\[\displaystyle \sum_{d|n}\bigg(\mu(d)\cdot F\Big(\frac{n}{d}\Big)\bigg)=\sum_{d|n}\bigg(\mu(d)\cdot \sum_{k|\frac{n}{d}}f(k)\bigg)=\sum_{k|n}\bigg(f(k)\cdot \sum_{d|\frac{n}{k}}\mu(d)\bigg)=f(n) \]

最后一步时根据莫比乌斯函数的性质二,可得当且仅当 \(k=n\) 时和式的值为 \(f(n)\),否则为 \(0\)

形式二

\[\displaystyle F(n)=\sum_{n|d}f(d)\implies f(n)=\sum_{n|d}\bigg(\mu\Big(\frac{d}{n}\Big)\cdot F(d)\bigg) \]

应用
容斥原理,数论,杜教筛。

原博客

posted @ 2018-09-26 19:22  AlessandroChen  阅读(317)  评论(0编辑  收藏  举报