莫比乌斯反演

莫比乌斯反演和容斥原理可以相互联系。有的题目使用容斥原理做起来比较复杂,这时候可以使用莫比乌斯反演解决。

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α2pkαk,pi均为质数, α i ≥ 1. \alpha_i\geq1. αi1.

μ ( 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αi2. μ(x)=02αi=1. μ(x)=(1)k

2. S ( n ) = ∑ d ∣ n μ ( d ) S(n)=\sum_{d|n}\mu(d) S(n)=dnμ(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α2pkαk,当 n > 1 n>1 n>1时,一定有 k ≥ 1 k \geq1 k1

此时 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β2pkβ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=Ck0akb0+Ck1ak1b1+Ckka0bk.

可以发现,当 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)=dnf(d),则 f ( n ) = ∑ d ∣ n μ ( d ) F ( n d ) f(n)=\sum_{d|n}\mu(d)F(\frac nd) f(n)=dnμ(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) dnμ(d)F(dn)=dnμ(d)idnf(i)=inf(i)dinμ(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 idn推导而来,也就是:
i ∣ n d ⇔ i d ∣ n ⇔ d ∣ n i i|\frac nd\Leftrightarrow id|n \Leftrightarrow d|\frac ni idnidndin

i i i的条件,也是根据 i ∣ n d i|\frac nd idn得出。

接着进行公式的证明:

∑ i ∣ n f ( i ) ∑ d ∣ n i μ ( d ) = f ( n ) \sum_{i|n}f(i)\sum_{d|\frac ni}\mu(d)=f(n) inf(i)dinμ(d)=f(n)

因为我们可以发现 ∑ d ∣ n i μ ( d ) \sum_{d|\frac ni}\mu(d) dinμ(d)就是之前的S,即

∑ d ∣ n i μ ( d ) = S ( n i ) \sum_{d|\frac ni}\mu(d) = S(\frac ni) dinμ(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)=ndf(d),则 f ( n ) = ∑ n ∣ d μ ( d n ) F ( d ) f(n)=\sum_{n|d}\mu(\frac dn)F(d) f(n)=ndμ(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)=ndμ(nd)F(d)=ndμ(nd)dif(i)=nif(i)dniμ(d)

这里的 d ′ = d n d'=\frac dn d=nd,由于 d ∣ i d|i di,因此也就有 n d ′ ∣ i nd'|i ndi,于是可推出上面式子中的 d ′ d' d所满足的限制条件 d ′ ∣ i n d'|\frac in dni

我们可以发现,上式中的 ∑ d ′ ∣ i n μ ( d ′ ) = S ( i n ) \sum_{d'|\frac in}\mu(d')=S(\frac in) dniμ(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) nif(i)dniμ(d)=f(n)

得证。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值