积性函数笔记

莫比乌斯反演的前置知识

定义

如果一个数论函数 f f f满足:当 n ⊥ m n\perp m nm时,有

f ( n m ) = f ( n ) f ( m ) f(nm) =f(n)f(m) f(nm)=f(n)f(m)

则称其为积性函数

当不需要满足互质条件 ( n ⊥ m ) (n\perp m) (nm)就能满足 f ( n m ) = f ( n ) f ( m ) f(nm) = f(n)f(m) f(nm)=f(n)f(m)时,称其为完全积性函数

f f f是积性函数,且 n = p 1 α 1 p 2 α 2 … p s α s n=p_1^{\alpha_1}p_2^{\alpha_2}…p_s^{\alpha_s} n=p1α1p2α2psαs n n n的标准分解,则有

f ( n ) = f ( p 1 α 1 ) f ( p 2 α 2 ) … f ( p s α s ) f(n)=f(p_1^{\alpha_1})f(p_2^{\alpha_2})…f(p_s^{\alpha_s}) f(n)=f(p1α1)f(p2α2)f(psαs)

因此研究积性函数 f f f可以转化为研究 f ( p α ) f(p^{\alpha}) f(pα),即 f f f在素数和素数的幂上的取值。

积性函数求值

f f f是积性函数,为求 f ( n ) f(n) f(n),可以对 n n n分解素因子,然后计算所有的 f ( p α ) f(p^{\alpha}) f(pα)乘起来,因此积性函数求值都可以用线性筛来求

如果要对 1 1 1 n n n之间的所有数求出 f f f,注意到 Euler \text{Euler} Euler筛法的过程中可以求出每个数的最小素因子和最小素因子的幂次,利用此就能在线性时间内计算出所需的 f f f的值

欧拉筛如何求出最小素因子的幂次
void sieve() {
    ip[0] = ip[1] = 1;
    alpha[1] = 0;
    for (int i = 2; i < XR; i++) {
        if (!ip[i]) p[c++] = i, alpha[i] = 1, p1[i] = i;
        for (int j = 0; j < c && i * p[j] < XR; j++) {
            ip[i * p[j]] = 1;
            p1[i * p[j]] = p[j];
            if (i % p[j]) alpha[i * p[j]] = 1;
            else {
                alpha[i * p[j]] = alpha[i] + 1;
                break;
            }
        }
        //最小素因子:p1[i] ^ alpha[i]
    }
}

常见积性函数

单位函数

单位函数 ϵ ( n ) \epsilon(n) ϵ(n)定义为

ϵ ( n ) = [ n = 1 ] = { 1 , n = 1 0 , n ≠ 1 \epsilon(n)=[n=1]=\left\{ \begin{aligned} 1, & n=1 \\ 0, & n\neq 1 \end{aligned} \right. ϵ(n)=[n=1]={1,0,n=1n=1

其中 [ condition ] [\text{condition}] [condition]表示当 condition \text{condition} condition为真时取值为 1 1 1,否则为 0 0 0的函数。

除数函数

除数函数 σ k ( n ) \sigma_{k}(n) σk(n)用来表示 n n n的因子的 k k k次方之和:

σ k ( n ) = ∑ d ∣ n d k \sigma_{k}(n)=\sum_{d|n}d^{k} σk(n)=dndk

约数个数 σ 0 ( n ) \sigma_{0}(n) σ0(n)常记为 d ( n ) d(n) d(n),约数和 σ 1 ( n ) \sigma_{1}(n) σ1(n)常记为 σ ( n ) \sigma(n) σ(n)

可以证明除数函数都是积性函数。

证明

每个素因子对函数的贡献都是独立的,它们之间的贡献可以用乘积来衡量,举一个例子:要算 n n n的约数个数(即 d ( n ) d(n) d(n)),就要枚举 n n n的约数 d d d,考虑 n n n的标准分解,也就是 n = p 1 α 1 p 2 α 2 … p s α s n=p_1^{\alpha_1}p_2^{\alpha_2}…p_s^{\alpha_s} n=p1α1p2α2psαs,可以想象出 d d d的素因子也跑不出这些个素因子,只不过上面的指数不一样,假设是 β \small\beta β,那么也就是 d = p 1 β 1 p 2 β 2 … p s β s d=p_1^{\beta_1}p_2^{\beta_2}…p_s^{\beta_s} d=p1β1p2β2psβs β 1 \beta_1 β1显然是要在 0 0 0 α 1 \alpha_1 α1之间,否则 d d d就不是 n n n的约数了,同理每个 β \beta β都是对应的每个 0 0 0 α \alpha α之间的,那么 β 1 \beta_1 β1 0 0 0 α 1 \alpha_1 α1 α 1 + 1 \alpha_1+1 α1+1种取值,每个 β \beta β的选取是独立的,所以他们的贡献的乘积就是 ( 1 + α 1 ) ∗ ( 1 + α 2 ) ∗ … ∗ ( 1 + α s ) (1+\alpha_1)*(1+\alpha_2)*…*(1+\alpha_s) (1+α1)(1+α2)(1+αs),这就是 σ 0 \sigma_0 σ0的算法,其他的 σ k \sigma_k σk是一样的,只不过 ( 1 + α ) (1 + \alpha) (1+α)这一步要换成一个求和的形式。

素因子贡献独立是一个常见的思路。

Euler函数(欧拉函数)

Euler \text{Euler} Euler函数 φ ( n ) \varphi(n) φ(n)表示不超过 n n n且与 n n n互质的正整数的个数,即

φ ( n ) = ∑ i = 1 n [ gcd ⁡ ( i , n ) = 1 ] \varphi(n)=\sum\limits_{i=1}^{n}[\gcd(i,n)=1] φ(n)=i=1n[gcd(i,n)=1]

比如说 φ ( 6 ) = 2 \varphi(6)=2 φ(6)=2,两个数是 1 , 5 1,5 1,5 φ ( 10 ) = 4 \varphi(10)=4 φ(10)=4,四个数分别为 1 , 3 , 5 , 7 1,3,5,7 1,3,5,7

n n n的标准分解并结合容斥原理,我们可以得到欧拉函数的显示表达式:

φ ( n ) = n ⋅ ∏ i = 1 s ( 1 − 1 p i ) \varphi(n)=n·\prod_{i=1}^{s}(1-\frac{1}{p_i}) φ(n)=ni=1s(1pi1)

其中 p i p_i pi是质数, n = p 1 α 1 p 2 α 2 … p s α s n=p_1^{\alpha_1}p_2^{\alpha_2}…p_s^{\alpha_s} n=p1α1p2α2psαs n n n的标准分解。

性质

对于任 n n n Euler \text{Euler} Euler函数具有如下性质:

n = ∑ d ∣ n φ ( d ) n=\sum_{d|n}\varphi(d) n=dnφ(d)

要证明这个等式,我们将 1 1 1 n n n中的所有整数按与 n n n的最大公约数分类。

g c d ( n , i ) = d gcd(n,i)=d gcd(n,i)=d,那么 g c d ( n d , d i ) = 1 gcd(\frac{n}{d},\frac{d}{i})=1 gcd(dn,id)=1。而又 i d \frac{i}{d} di是不超过 n d \frac{n}{d} dn的整数,故这样的 i i i φ ( n d ) \varphi(\frac{n}{d}) φ(dn)个。

考虑所有 d ∣ n d|n dn,我们就考虑到了所有 1 1 1 n n n之间的 n n n个整数,因此有

n = ∑ d ∣ n φ ( n d ) = ∑ d ∣ n φ ( d ) n=\sum_{d|n}\varphi(\frac{n}{d})=\sum_{d|n}\varphi(d) n=dnφ(dn)=dnφ(d)

证明积性

以下是从大佬那里淘来的证明

同样的, t ⊥ n m ⇔ t ⊥ n , t ⊥ m ⇔ ( t   m o d   n ) ⊥ n , ( t   m o d   m ) ⊥ m t\perp nm\Leftrightarrow t\perp n,t\perp m\Leftrightarrow(t\bmod n)\perp n,(t\bmod m)\perp m tnmtn,tm(tmodn)n,(tmodm)m,所以每个 [ 1 , n m ] [1, nm] [1,nm]之间的与 n m nm nm互质的数 t t t都可以对应到一个 [ 1 , n ] [1,n] [1,n]的与 n n n互质的数 t   m o d   n t\bmod n tmodn和一个 [ 1 , m ] [1,m] [1,m]的与 m m m互质的数 t   m o d   m t\bmod m tmodm

并且根据中国剩余定理,这种对应是一一对应的(即已知 a ⊥ n , b ⊥ m a\perp n, b\perp m an,bm后可以唯一确定一个 [ 1 , n m ] [1,nm] [1,nm]之间的 t t t使得 t   m o d   n = a , t   m o d   m = b t\bmod n=a, t\bmod m=b tmodn=a,tmodm=b,且 t ⊥ n m t\perp nm tnm)。因此 φ ( n m ) = φ ( n ) φ ( m ) \varphi(nm)=\varphi(n)\varphi(m) φ(nm)=φ(n)φ(m)


然而我看不懂……还是从定义上来证明吧!

假设有两个互质的正整数 n , m n,m n,m,则

φ ( n ) = n ∏ ( 1 − 1 p i ) \varphi(n)=n\prod(1-\frac{1}{p_i}) φ(n)=n(1pi1)

φ ( m ) = m ∏ ( 1 − 1 p i ′ ) \varphi(m)=m\prod(1-\frac{1}{p_{i'}}) φ(m)=m(1pi1)

φ ( n ) φ ( m ) = n ∏ ( 1 − 1 p i ) m ∏ ( 1 − 1 p i ′ ) = n m ∏ ( 1 − 1 p i ) ∏ ( 1 − 1 p i ′ ) \varphi(n)\varphi(m)=n\prod(1-\frac1{p_i})m\prod(1-\frac1{p_{i'}})=nm\prod(1-\frac1{p_i})\prod(1-\frac1{p_{i'}}) φ(n)φ(m)=n(1pi1)m(1pi1)=nm(1pi1)(1pi1)

因为 n , m n,m n,m互质,所以 p i p_i pi p i ′ p_{i'} pi各各都不相同,且都是 n m nm nm的质因子

因此就可以推出 φ ( n m ) = φ ( n ) φ ( m ) \varphi(nm)=\varphi(n)\varphi(m) φ(nm)=φ(n)φ(m)

至此,积性函数的性质得证。但是由上面的证明可知, n , m n,m n,m必须要互质才可以满足欧拉函数是积性函数,由此可见欧拉函数不是完全积性函数

恒等函数

i d k = n k \mathbf{id}^k=n^k idk=nk, i d ( n ) = n \mathbf{id}(n)=n id(n)=n

(就酱紫一笔带过吧……)

性质

f ( x ) \mathbf{f}(x) f(x) g ( x ) g(x) g(x)均为积性函数,则以下函数也为积性函数

h ( x ) = f ( x p ) h ( x ) = f p ( x ) h ( x ) = f ( x ) g ( x ) h ( x ) = ∑ d ∣ x f ( d ) g ( x d ) \begin{aligned} h(x)&=f(x^p)\\ h(x)&=f^p(x)\\ h(x)&=f(x)g(x)\\ h(x)&=\sum_{d\mid x}f(d)g(\frac{x}{d}) \end{aligned} h(x)h(x)h(x)h(x)=f(xp)=fp(x)=f(x)g(x)=dxf(d)g(dx)

部分性质的证明

来自铃悬的数学讲堂(抄这个东西也很累……)

两个积性函数的狄利克雷卷积是积性函数

考虑到上面的性质,即“若 n ⊥ m n\perp m nm则每个 n m nm nm的约数都可以分解成一个 n n n的约数和一个 m m m的约数的积”,并且有另一个性质:若 n ⊥ m , a ∣ n , b ∣ m n\perp m,a\mid n,b\mid m nm,an,bm a ⊥ b a\perp b ab

于是若 n ⊥ m n\perp m nm,我们就有

t ( n m ) = ∑ d ∣ n m f ( d ) g ( n m d ) = ∑ a ∣ n , b ∣ m f ( a b ) g ( n m a b ) = ∑ a ∣ n , b ∣ m f ( a ) f ( b ) g ( n a ) g ( m b ) = ( ∑ a ∣ n f ( a ) g ( n a ) ) ( ∑ b ∣ m f ( b ) g ( m b ) ) = t ( n ) t ( m ) \begin{aligned}t(nm)&=\sum_{d\mid nm}f(d)g\left(\frac{nm}d\right)\\&=\sum_{a\mid n,b\mid m}f(ab)g\left(\frac{nm}{ab}\right)\\&=\sum_{a\mid n,b\mid m}f(a)f(b)g\left(\frac na\right)g\left(\frac mb\right)\\&=\left(\sum_{a\mid n}f(a)g\left(\frac na\right)\right)\left(\sum_{b\mid m}f(b)g\left(\frac mb\right)\right)\\&=t(n)t(m)\end{aligned} t(nm)=dnmf(d)g(dnm)=an,bmf(ab)g(abnm)=an,bmf(a)f(b)g(an)g(bm)=anf(a)g(an)bmf(b)g(bm)=t(n)t(m)

积性函数的逆是积性函数

第二个重要的结论:积性函数的逆是积性函数
对于一个积性函数 f f f ,如何证明其逆 g ( n ) = [ n = 1 ] − ∑ i ∣ n , i ≠ 1 f ( i ) g ( n i ) g(n)=[n=1]-\sum_{i\mid n,i\neq1}f(i)g\left(\frac ni\right) g(n)=[n=1]in,i=1f(i)g(in) (注意,积性函数一定满足 f ( 1 ) = 1 f(1)=1 f(1)=1 ,因为 f ( 1 ) = f ( 1 ) f ( 1 ) f(1)=f(1)f(1) f(1)=f(1)f(1) ,并且如果 f ( 1 ) = 0 f(1)=0 f(1)=0 f ( n ) ≡ 0 f(n)\equiv0 f(n)0 ,这种情况我们不考虑)也满足积性呢?
n m nm nm 的大小进行归纳:

n m = 1 nm=1 nm=1 时, g ( 1 ) = 1 g(1)=1 g(1)=1 ,结论显然成立;

假设 n m > 1 nm > 1 nm>1 ,当 n ′ m ′ < n m n'm'< nm nm<nm 的时候有 g ( n ′ m ′ ) = g ( n ′ ) g ( m ′ ) g(n'm')=g(n')g(m') g(nm)=g(n)g(m)
g ( n m ) = − ∑ d ∣ n m , d ≠ 1 f ( d ) g ( n m d ) = − ∑ a ∣ n , b ∣ m , a b ≠ 1 f ( a b ) g ( n m a b ) = − ∑ a ∣ n , b ∣ m , a b ≠ 1 f ( a ) f ( b ) g ( n a ) g ( m b ) = f ( 1 ) f ( 1 ) g ( n ) g ( m ) − ∑ a ∣ n , b ∣ m f ( a ) f ( b ) g ( n a ) g ( m b ) = g ( n ) g ( m ) − ( ∑ a ∣ n f ( a ) g ( n a ) ) ( ∑ b ∣ m f ( b ) g ( m b ) ) = g ( n ) g ( m ) − ϵ ( n ) ϵ ( m ) = g ( n ) g ( m ) \begin{aligned}g(nm)&=-\sum_{d\mid nm,d\neq1}f(d)g\left(\frac{nm}d\right)\\&=-\sum_{a\mid n,b\mid m,ab\neq1}f(ab)g\left(\frac{nm}{ab}\right)\\&=-\sum_{a\mid n,b\mid m,ab\neq1}f(a)f(b)g\left(\frac na\right)g\left(\frac mb\right)\\&=f(1)f(1)g(n)g(m)-\sum_{a\mid n,b\mid m}f(a)f(b)g\left(\frac na\right)g\left(\frac mb\right)\\&=g(n)g(m)-\left(\sum_{a\mid n}f(a)g\left(\frac na\right)\right)\left(\sum_{b\mid m}f(b)g\left(\frac mb\right)\right)\\&=g(n)g(m)-\epsilon(n)\epsilon(m)\\&=g(n)g(m)\end{aligned} g(nm)=dnm,d=1f(d)g(dnm)=an,bm,ab=1f(ab)g(abnm)=an,bm,ab=1f(a)f(b)g(an)g(bm)=f(1)f(1)g(n)g(m)an,bmf(a)f(b)g(an)g(bm)=g(n)g(m)anf(a)g(an)bmf(b)g(bm)=g(n)g(m)ϵ(n)ϵ(m)=g(n)g(m)

注意前面几步把 g ( n m a b ) g(\frac{nm}{ab}) g(abnm) 拆成 g ( n / a ) g ( m / b ) g(n/a)g(m/b) g(n/a)g(m/b) 的时候 n m a b < n m \frac{nm}{ab}<nm abnm<nm ,可以运用归纳条件。
最后一步是因为 n m > 1 nm>1 nm>1 所以 n , m n,m n,m 之间至少一个不为 1 1 1 ,则 ϵ ( n ) ϵ ( m ) = [ n = 1 ] [ m = 1 ] = 0 \epsilon(n)\epsilon(m)=[n=1][m=1]=0 ϵ(n)ϵ(m)=[n=1][m=1]=0

就酱紫吧

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值