莫比乌斯反演基础

2017 CDQZ 联训 中向 HSZX 的大佬请教了一些关于莫反的知识,特此感谢!

本文仅介绍一些关于莫比乌斯反演的基础知识。

声明

本文中,若无特殊声明 p 1 a 1 p 2 a 2 . . . P k a k 表示一个数的质因数分解, i , p r i m e ( p i ) a i N +

莫比乌斯函数

定义

莫比乌斯函数是在数论中一个很重要的积性函数,定义如下。

若正整数x可质因数分解为:

x = p 1 a 1 p 2 a 2 . . . P k a k

μ ( x ) = { 0 : a i 2 1 : k 0 mod 2 1 : k 1 mod 2

即当 x 1 ,且不存在平方因子时:

μ ( x ) = ( 1 ) k

当x存在平方因子时:

μ ( x ) = 0

特殊地:

μ ( 1 ) = 1

一些性质

此性质可用来判断一个数是否等于一。

d | n μ ( d ) = [ n = 1 ]

证明:

n = 1 时显然成立。

n 1 时,不妨令 n = p 1 a 1 p 2 a 2 . . . P k a k ,那么n的因子 d = p 1 b 1 p 2 b 2 . . . P k b k , 0 b i a i

b i 2 , μ ( d ) = 0 对答案没有贡献。

因此,对答案有贡献d一定满足 b i 0 , 1

枚举每一个有贡献的d,就相当于是从 b i 中选出若干个置为1,其他的置为0。

从k个位置中选出j个位置的方案数为 C k j ,而一个由j个质因子组成的数d,有 μ ( d ) = ( 1 ) j 。所以,所有由j个质数组成的d对答案的贡献和为 C k j ( 1 ) j

因为 j { 0 , 1 , 2 , . . . , k } ,所以:

d | n μ ( d ) = j = 0 k C k j ( 1 ) j

根据二项式定理:

j = 0 k C k j x j = ( x + 1 ) k

所以:

d | n μ ( d ) = j = 0 k C k j ( 1 ) j = ( ( 1 ) + 1 ) k = 0

得证。

欧拉函数

定义

φ ( x ) , x N + 表示小于x且与x互质的数的个数。

特殊地

φ ( 1 ) = 1

一些性质

积性函数の积性

g c d ( a , b ) = 1 φ ( a b ) = φ ( a ) φ ( b )

证明很显然。

2018.3.16 填坑,后来我惊奇得发现这一点都不显然。。

g c d ( n , m ) = 1 , 考虑 φ ( n m ) 的物理意义。

1         2         3        ...  r       ...     m-1       m
m+1       m+2       m+3      ...  m+r     ...    2m-1      2m
2m+1     2m+2      2m+3      ... 2m+r     ...    3m-1      3m
.        .         .                             .         .
.        .         .                             .         .
.        .         .                             .         .
(n-1)m+1 (n-1)m+2  (n-1)m+3 ... (n-1)m+r  ...    nm-1      nm

φ ( n m ) 的物理意义为上表中与nm互质的数的个数。

因为n和m互质,所以不难证明:一个数x与nm互质的充要条件为x与n互质且x与m互质。

证明:设P(x)为x的质因子集合。因为n和m互质,所以 P ( n ) P ( m ) = ϕ , P ( n m ) = P ( n ) P ( m )
gcd ( x , n ) = 1 P ( x ) P ( n ) = ϕ
gcd ( x , m ) = 1 P ( x ) P ( m ) = ϕ
P ( n ) P ( m ) = ϕ , P ( x ) ( P ( n ) P ( m ) ) = ϕ P ( x ) P ( n ) = ϕ , P ( x ) P ( m ) = ϕ
得证。

发现每一列元素与m的gcd都相同,考虑有哪些列是与m互质的。根据定义,这样的列有 φ ( m ) 列。

再考虑这些列中的每一列中与n互质的数的个数,因为每一横行的数在模n意义下同余。所以每一列有 φ ( n ) 个元素与n互质。综上, φ ( n m ) = φ ( n ) φ ( m ) ,及欧拉函数为积性函数。

补坑结束。


另外,当p为质数时:

φ ( p ) = p 1

这更加显然。

另一个基本性质

x = p 1 a 1 p 2 a 2 . . . p k a k , d = p i

φ ( x d ) = φ ( x ) d

证明:

首先 t = p i a i φ ( t ) = { 1 : a i = 0 ( p i 1 ) p i a i 1 : a i > 0 , p i 是质数。

考虑把一个数化成 p i 进制数,t一定能表示成一个1后面 a i 个0的形式。对于任意的一个小于t的数d与t互质,当且仅当把t化成 p i 进制后最后一位不为零。所以说d这个 a i p i 进制数,除了最低位不能为0,有 p i 1 种可能外,其它的位是什么都可以,各有 p i 种可能。因此上式成立。

这样的话就有: φ ( p i k + 1 ) = φ ( p i k ) p i , k N +

φ ( x d ) = φ ( ( p 1 a 1 p 2 a 2 . . . p i 1 a i 1 p i + 1 a i + 1 . . . p k a k ) × p i a i + 1 ) = φ ( p 1 a 1 p 2 a 2 . . . p i 1 a i 1 p i + 1 a i + 1 . . . p k a k ) × φ ( p i ( a i ) + 1 ) = φ ( p 1 a 1 p 2 a 2 . . . p i 1 a i 1 p i + 1 a i + 1 . . . p k a k ) × φ ( p i a i ) p i = φ ( x ) d

得证。

还有一个比较重要的性质:

d | n φ ( d ) = n

哪位大神能教我一下这个怎么证啊!留坑待补。

[2018.1.22] 在此补坑。前几天碰巧在学校遇到了樊神,向樊神请教了一番,樊神几句话就证出来了,真是佩服。

f ( n ) = d | n φ ( d ) ,显然有 f ( 1 ) = 1

对于一个质数 p f ( p ) = φ ( 1 ) + φ ( p ) = 1 + ( p 1 ) = p ,显然成立。

数学归纳一下,对于一个质数的若干次幂 p k ,若此性质已经对 p k 1 成立:

f ( p k ) = t = 0 k φ ( p t ) = φ ( p k ) + t = 0 k 1 φ ( p t ) = φ ( p k ) + f ( p k 1 ) = ( p 1 ) p k 1 + p k 1 = p k

又因为该性质对k=1成立,所以该性质对任意正整数k成立。

对于一个数n,n与 p k (p为素数)互质,那么这个数的所有因子一定能写成n的所有因子乘上p的若干次幂的形式。

若n已经满足 f ( n ) = n 的性质,

f ( n p k ) = d | n ( t = 0 k φ ( d p t ) )

又因为n与 p k 互质,所以d与 p k 也一定互质, φ 是积性函数,所以 φ ( d p t ) = φ ( d ) φ ( p t )

所以 f ( n p k ) = d | n ( t = 0 k φ ( d p t ) ) = d | n φ ( d ) ( t = 0 k φ ( p t ) ) = d | n φ ( d ) f ( p k ) = f ( p k ) d | n φ ( d ) = f ( p k ) f ( n ) = n p k

对于任意的一个数都可以进行质因数分解,分解成 n = 1 p 1 a 1 p 2 a 2 . . . P k a k 的形式,因为1是成立的,质数两两互质,所以任意正整数n都满足 f ( n ) = n

得证。

[2018.1.22] 填坑到此结束,后面的内容为之前所写。

利用这个性质可以有:

i = 1 n i = i = 1 n d | i φ ( d ) = d = 1 n φ ( d ) × n d

这里给出欧拉函数的暴力求法:

x = p 1 a 1 p 2 a 2 . . . p k a k φ ( x ) = x ( 1 1 p 1 ) ( 1 1 p 2 ) . . . ( 1 1 p k )

证明:

φ ( x ) = φ ( p 1 a 1 p 2 a 2 . . . p k a k ) = φ ( p 1 a 1 ) φ ( p 2 a 2 ) . . . φ ( p k a k ) = ( p 1 1 ) p 1 ( a 1 ) 1 ( p 2 1 ) p 2 ( a 2 ) 1 . . . ( p k 1 ) p k ( a k ) 1 = ( 1 1 p 1 ) p 1 a 1 ( 1 1 p 2 ) p 2 a 2 . . . ( 1 1 p k ) p k a k = x ( 1 1 p 1 ) ( 1 1 p 2 ) . . . ( 1 1 p k )

得证。

狄利克雷卷积

一种生成函数的运算,定义如下:

( f × g ) ( n ) = d | n f ( d ) g ( n d )

常见积性函数

单位函数: i d ( n ) = n

元函数: e ( n ) = [ n == 1 ]

1函数: I ( n ) = 1

约数个数: d ( n ) = d | n 1

一些常见的性质

f 为积性函数。

( f × e ) ( n ) = d | n f ( d ) × e ( n d ) = d | n f ( d ) × [ n d = 1 ] = f ( n )

即:

f × e = f

另外,狄利克雷卷积满足交换律和结合律。

φ × I = i d

证明:

φ × I = d | n φ ( d ) I ( n d ) = d | n φ ( d ) = n

得证。

μ × I = e

证明:

( μ × I ) ( n ) = d | n μ ( d ) I ( n d ) = d | n μ ( d ) = [ n = 1 ] = e ( n )

莫比乌斯反演

内容

若:

F ( n ) = d | n f ( n )

则:

f ( n ) = d | n μ ( d ) F ( n d )

用狄利克雷卷积表述如下:

若:

F = f × 1

则:

f = F × μ

从这个角度来讲,证明就很简单了:

F × μ = ( f × 1 ) × μ = f × ( 1 × μ ) = f × e = f

杜教筛原理

求积性函数前缀和:

S ( n ) = i = 1 n f ( i )

当f的前缀和不好求的时候,考虑一个前缀和比较好求的g,求 f × g 的前缀和。

i = 1 n ( f × g ) ( i ) = i = 1 n d | i g ( d ) f ( i d )

枚举d,存在一个 d | i ,那么 f ( i d ) 就要和 g ( d ) 相乘,而i可以为 d , 2 d , 3 d , . . . , d n d ,所以 S ( n d ) g ( d ) 相乘就是 g ( d ) 的贡献。

= d = 1 n g ( d ) i = 1 n d f ( i ) = d = 1 n g ( d ) S ( n d )

所以:

i = 1 n ( f × g ) ( i ) = d = 1 n g ( d ) S ( n d ) = g ( 1 ) S ( n ) + i = 2 n g ( i ) S ( n i )

所以:

S ( n ) = i = 1 n ( f × g ) ( i ) i = 2 n g ( i ) S ( n i ) g ( 1 )

这样的话如果 g ( f × g ) 的前缀和都很好求,那么计算 S ( n ) 只需要 S ( n 2 ) , S ( n 3 ) , . . , S ( n n ) = S ( 1 ) 。而又因为 n i 只有 O ( n ) 种取值,所以记忆化搜索一下会有奇效。

关于 n i 的取值问题的证明。

1 i n 时,就算是结果两两各不相同, n i 也只有 n 种取值。

n < i n 时, 1 n i < n ,就算是取遍值域中的所有值,也只有 n 种取值。

因此 n i 的取值种数不超过 2 n 种,即 O ( n ) 种。

得证。

用线性筛求出前 n 2 3 的前缀和之后再递推,可以将 O ( n 3 4 ) 优化到 O ( n 2 3 )

猜你喜欢

转载自blog.csdn.net/ggn_2015/article/details/78943252