莫比乌斯反演和容斥原理可以相互联系。有的题目使用容斥原理做起来比较复杂,这时候可以使用莫比乌斯反演解决。
1.莫比乌斯函数的定义
x = p 1 α 1 p 2 α 2 … p k α k , p i x = p_1^{\alpha_1}p_2^{\alpha_2}\dots p_k^{\alpha_k},p_i x=p1α1p2α2…pkαk,pi均为质数, α i ≥ 1. \alpha_i\geq1. αi≥1.
μ ( x ) = { 情 况 1 : 存 在 α i ≥ 2. μ ( x ) = 0 情 况 2 : ∀ α i = 1. μ ( x ) = ( − 1 ) k \mu(x)=\begin {cases} 情况1:存在\alpha_i \geq 2.\ \mu(x) = 0 \\ 情况2: \forall \alpha_i = 1.\ \mu(x) = (-1)^k \end{cases} μ(x)={情况1:存在αi≥2. μ(x)=0情况2:∀αi=1. μ(x)=(−1)k
2. S ( n ) = ∑ d ∣ n μ ( d ) S(n)=\sum_{d|n}\mu(d) S(n)=∑d∣nμ(d),那么 S ( n ) = { 1. n = 1 0. n > 0 S(n)=\begin{cases} 1.\ n=1 \\0.\ n > 0\end{cases} S(n)={1. n=10. n>0
证明:
n = p 1 α 1 p 2 α 2 … p k α k n = p_1^{\alpha_1}p_2^{\alpha_2}\dots p_k^{\alpha_k} n=p1α1p2α2…pkαk,当 n > 1 n>1 n>1时,一定有 k ≥ 1 k \geq1 k≥1
此时 n n n的因子就可以表示为 d = p 1 β 1 p 2 β 2 … p k β k , 0 ≤ β i ≤ α i d = p_1^{\beta_1}p_2^{\beta_2}\dots p_k^{\beta_k},0\leq\beta_i\leq\alpha_i d=p1β1p2β2…pkβk,0≤βi≤αi.
我们根据莫比乌斯函数的定义可以发现,当 β i > 1 \beta_i>1 βi>1时, μ ( d ) \mu(d) μ(d)等于0,因此,在求和的过程中,所有包含因子次数大于1的情况我们可以省去。
接下来我们就只需要考虑次数为0和1的情况。
对于这种情况:
S ( n ) = C k 0 ( − 1 ) 0 + C k 1 ( − 1 ) 1 + ⋯ + C k k ( − 1 ) k S(n)=C_k^0(-1)^0+C_k^1(-1)^1+\dots+C_k^k(-1)^k S(n)=Ck0(−1)0+Ck1(−1)1+⋯+Ckk(−1)k,这个式子我们可以使用二项式定理求解:
( a + b ) k = C k 0 a k ∗ b 0 + C k 1 a k − 1 ∗ b 1 + … C k k a 0 ∗ b k (a+b)^k=C_k^0a^k*b^0+C_k^1a^{k-1}*b^1+\dots C_k^ka^0*b^k (a+b)k=Ck0ak∗b0+Ck1ak−1∗b1+…Ckka0∗bk.
可以发现,当 a = 1 , b = − 1 a=1,b=-1 a=1,b=−1时,二项式定理的右边正好等于 S ( n ) S(n) S(n)。因此我们可以证明只要 n > 0 n>0 n>0时,一定有 S ( n ) = 0 S(n)=0 S(n)=0。得证。
3. 莫比乌斯反演
该定理的内容是:
若
F
(
n
)
=
∑
d
∣
n
f
(
d
)
F(n)=\sum_{d|n}f(d)
F(n)=∑d∣nf(d),则
f
(
n
)
=
∑
d
∣
n
μ
(
d
)
F
(
n
d
)
f(n)=\sum_{d|n}\mu(d)F(\frac nd)
f(n)=∑d∣nμ(d)F(dn)
相关的题目基本是定义出 F F F和 f f f函数,如果发现 F F F函数好求解但是 f f f函数不好求解,就可以使用反演,套用上面的式子。
证明:
∑ d ∣ n μ ( d ) F ( n d ) = ∑ d ∣ n μ ( d ) ∑ i ∣ n d f ( i ) = ∑ i ∣ n f ( i ) ∑ d ∣ n i μ ( d ) \sum_{d|n}\mu(d)F(\frac nd)=\sum_{d|n}\mu(d)\sum_{i|\frac nd}f(i)=\sum_{i|n}f(i)\sum_{d|\frac ni}\mu(d) ∑d∣nμ(d)F(dn)=∑d∣nμ(d)∑i∣dnf(i)=∑i∣nf(i)∑d∣inμ(d)
对于上面最后一步的变换,我们相当于将两层for循环的变量交换了顺序。改成我们先枚举之前内层循环变量的所有可能的取值,然后再枚举之前外层循环变量的取值。
这个过程可以通过下面的变换来感受一下:
s
1
=
μ
(
d
1
)
∗
(
f
(
i
1
)
+
f
(
i
2
)
+
…
)
s_1 = \mu(d_1)*(f(i_1)+f(i_2)+\dots_)
s1=μ(d1)∗(f(i1)+f(i2)+…)
s
2
=
μ
(
d
2
)
∗
(
f
(
i
1
)
+
f
(
i
2
)
+
…
)
s_2 = \mu(d_2)*(f(i_1)+f(i_2)+\dots)
s2=μ(d2)∗(f(i1)+f(i2)+…)
那么
s
1
+
s
2
=
f
(
i
1
)
∗
(
μ
(
d
1
)
+
μ
(
d
2
)
)
+
f
(
i
2
)
∗
(
μ
(
d
1
)
+
μ
(
d
2
)
)
…
s1+s2 = f(i_1)*(\mu(d_1)+\mu(d_2))+f(i_2)*(\mu(d_1)+\mu(d_2))\dots
s1+s2=f(i1)∗(μ(d1)+μ(d2))+f(i2)∗(μ(d1)+μ(d2))…
之前的推导过程中,最后一个式子的
d
d
d的条件,是根据
i
∣
n
d
i|\frac nd
i∣dn推导而来,也就是:
i
∣
n
d
⇔
i
d
∣
n
⇔
d
∣
n
i
i|\frac nd\Leftrightarrow id|n \Leftrightarrow d|\frac ni
i∣dn⇔id∣n⇔d∣in
i i i的条件,也是根据 i ∣ n d i|\frac nd i∣dn得出。
接着进行公式的证明:
∑ i ∣ n f ( i ) ∑ d ∣ n i μ ( d ) = f ( n ) \sum_{i|n}f(i)\sum_{d|\frac ni}\mu(d)=f(n) ∑i∣nf(i)∑d∣inμ(d)=f(n)
因为我们可以发现 ∑ d ∣ n i μ ( d ) \sum_{d|\frac ni}\mu(d) ∑d∣inμ(d)就是之前的S,即
∑ d ∣ n i μ ( d ) = S ( n i ) \sum_{d|\frac ni}\mu(d) = S(\frac ni) ∑d∣inμ(d)=S(in)
当 i < n i < n i<n时,显然 n i > 1 \frac ni >1 in>1,此时S = 0,只有当 i = n i=n i=n时,S = 1。因此,上面的式子成立。
莫比乌斯反演定理得证。
不过我们在做题的时候,通常还是使用该定理的另一种形式:
若 F ( n ) = ∑ n ∣ d f ( d ) F(n)=\sum_{n|d}f(d) F(n)=∑n∣df(d),则 f ( n ) = ∑ n ∣ d μ ( d n ) F ( d ) f(n)=\sum_{n|d}\mu(\frac dn)F(d) f(n)=∑n∣dμ(nd)F(d).
也就是这里我们枚举n的倍数,而不是因子。
证明:
f ( n ) = ∑ n ∣ d μ ( d n ) F ( d ) = ∑ n ∣ d μ ( d n ) ∑ d ∣ i f ( i ) = ∑ n ∣ i f ( i ) ∑ d ′ ∣ i n μ ( d ′ ) f(n)=\sum_{n|d}\mu(\frac dn)F(d) = \sum_{n|d}\mu(\frac dn)\sum_{d|i}f(i) = \sum_{n|i}f(i)\sum_{d'|\frac in}\mu(d') f(n)=∑n∣dμ(nd)F(d)=∑n∣dμ(nd)∑d∣if(i)=∑n∣if(i)∑d′∣niμ(d′)
这里的 d ′ = d n d'=\frac dn d′=nd,由于 d ∣ i d|i d∣i,因此也就有 n d ′ ∣ i nd'|i nd′∣i,于是可推出上面式子中的 d ′ d' d′所满足的限制条件 d ′ ∣ i n d'|\frac in d′∣ni。
我们可以发现,上式中的 ∑ d ′ ∣ i n μ ( d ′ ) = S ( i n ) \sum_{d'|\frac in}\mu(d')=S(\frac in) ∑d′∣niμ(d′)=S(ni),因此只有当 i = n i=n i=n的时候,S等于1。因此得:
∑ n ∣ i f ( i ) ∑ d ′ ∣ i n μ ( d ′ ) = f ( n ) \sum_{n|i}f(i)\sum_{d'|\frac in}\mu(d')=f(n) ∑n∣if(i)∑d′∣niμ(d′)=f(n)
得证。