欧拉函数线性求解以及莫比乌斯反演(Mobius)

前言

咕咕了好久终于来学习莫反了
要不是不让在机房谁会发现数学一本通上有这么神奇的东西
就是没有性质的证明
然后花了两节数学课证明了一遍
舒服~
前置知识:欧拉函数,二项式定理(组合数)
会欧拉函数的可以直接看(Mobius)

欧拉函数

含义

(phi (n)) 表示比(n)小的数中与(n)互质的数的个数

引理1

  • (n)为质数,(phi(n) = n - 1)
  • (n=a*b)((a, b) = 1),则(phi(n) = phi(a) * phi(b))
  • 对于一个质数(n)(a)次方 (phi(n^a) = (n - 1) * n^{a-1})

现对于第三条性质给出证明

  • (n^a)小的数有(n^a - 1)
  • 其中能整除的表示为(n* t (t = 1, 2, ... n ^{a-1}-1))
  • 总计有(n^{a-1}-1)个数能被整除
  • 则与其互质的数的个数为(phi(p^a) = (p^a-1) - (p^{a-1}-1) = p^a - p^{a-1} = (p-1) * p^{a-1})

引理2

对于质数(n),唯一分解定理 (n = {p_1}^{c_1} * {p_2} ^{c_2}...{p_k}^{c_k})
(phi(n) = n * (1- frac 1 {p_1}) * (1- frac 1 {p_2}) ... (1- frac 1 {p_k}))
(a)(m)互质,(a^{phi(m)} equiv 1 (mod ; m))

线性筛

根据上述性质,推出

  • (p)为质数,(phi (p) = p - 1)
  • (if(i \% p == 0) : phi(i*p)=p*phi(i))
  • (if(i \% p ; != 0) : phi(i*p)=phi(i)*(p -1))

code

inline void pre(int n){
	phi[1] = 1;
	for(int i = 2; i <= n; i++){
		if(!vis[i]){
			prime[++cnt] = i;
			phi[i] = i - 1;
		}
		for(int j = 1; j <= cnt && i * prime[j] <= n; j++){
			vis[i * prime[j]] = 1;
			if(i % prime[j] == 0){
				phi[i * prime[j]] = phi[i] * prime[j];
				break;
			}
			else phi[i * prime[j]] = phi[i] * (prime[j] - 1);
		}
	}
}

莫比乌斯反演(Mobius)

定义

对于非负整数集合上的两个函数(F(n))(f(n)),若满足条件(F(n)=sum_{d|n}f(d))
$$f(n)=sum_{d|n}mu(d)F(frac n d)$$

(mu)函数

定义如下

  • (d=1)(mu(d)=1)
  • (d=p_1p_2p_3...p_k)均为互异质数,则(mu(d)=(-1)^k)
  • 其他情况(mu(d)=0)

性质一

[ sum_{d|n}mu(d) = egin{cases} 1, & ext n=1 \ 0, & ext n>1 end{cases} ]

证明:
(n)为质数,显然(sum=0)
(n)为合数,根据唯一分解定理

[n = {p_1}^{c_1} * {p_2} ^{c_2}...{p_k}^{c_k} ]

(n)的因子(d)只能是(p_1p_2,p_1p_3,p_3p_k)诸如此类
可以发现(d)的构造来自于(k)个质因子中选取了(i)

  • (k)为奇数即(n)中包含奇数个质因子
    (k)中选出奇数个因子,(mu)值为-1,对答案贡献为(-sum_{i=1}^kC_k^i(i+=2))
    (k)中选出偶数个因子,(mu)值为1,对答案贡献为(sum_{i=2}^{k-1}C_k^i(i+=2))
    两种情况加和化简得(-C_k^k=-1)
    (sum = -1 + mu(1)=-1+1=0)
    得证
  • k为偶数即(n)中包含偶数个质因子
    同理可得(sum=0)

性质二

[ sum_{d|n} frac {mu(d)} {d} = frac {phi(n)} {n} ]

证明:
同上将(n)质因数分解,同时将等号右侧

[frac {phi(n)} n = (1- frac 1 {p_1}) * (1- frac 1 {p_2}) ... (1- frac 1 {p_k}) ]

[= frac {(p_1-1)(p_2-1)...(p_k-1)} {p_1p_2...p_k} ]

同样的,对(k)的奇偶性分类讨论

  • (k)为奇数
    • 从分子中选取奇数个质因子组成类似于(p_1p_2p_3)
      由于剩下了奇数-奇数=偶数个括号,那么在多项式展开式中该项的常数项(不包含其他质因子)系数一定为(1)
      与分母约分得到(frac {1}{ ext {偶数个质因子的积}})
      根据(mu)函数的性质可以知道,该化简式等于(frac {mu( ext 分母)} { ext 分母})
    • 同理,从中选取偶数个质因子得到的化简结果为
      (frac {1}{ ext {奇数个质因子的积}})
      该化简式也等于(frac {mu( ext 分母)} { ext 分母})
    • 当然,分子展开式当中必包含一项(p_1p_2...p_k= ext 分母)
      约分结果显然为(1=mu(1)/1)

综上所述$$frac {phi(n)}{n}= (1- frac 1 {p_1}) * (1- frac 1 {p_2}) ... (1- frac 1 {p_k})$$

[=frac {(p_1-1)(p_2-1)...(p_k-1)} {p_1p_2...p_k} ]

[=1+frac {mu(d)} {d}(d eq 1,d|n) ]

[=frac {mu(1)}{1} +frac {mu(d)} {d}(d eq 1,d|n) ]

[= sum_{d|n} frac {mu(d)}{d} ]

原命题得证

  • (k)为偶数
    同理即可证明

[frac {phi(n)}{n}= (1- frac 1 {p_1}) * (1- frac 1 {p_2}) ... (1- frac 1 {p_k})= sum_{d|n} frac {mu(d)}{d} ]

原命题得证

反演证明

目标性质$$f(n)=sum_{d|n}mu(d)F(frac n d)$$
证明:
(F(n))(f(n))的关系(F(n)=sum_{d|n}f(d))将等式推导:

[sum_{d|n}mu(d)F(frac n d)=sum_{d|n}mu(d)sum_{d'|frac n d}f(d') ]

[=sum_{d|n}sum_{d'|frac n d}mu(d)f(d') ]

可见只有满足((d*d')|n)时,函数对答案有贡献
那么不妨交换(d)(d')的位置(理解成范围也行)

[=sum_{d'|n}sum_{d|frac n {d'}}mu(d)f(d') ]

[=sum_{d|frac n {d'}}mu(d)sum_{d'|n}f(d') ]

再观察式子,根据(mu(d))(1)(0)的性质,来考虑(d')为何值时对答案有贡献
可见当且仅当(d'=n)(d=frac {n}{d'}=1)时,(mu(d)=1)该式不为(0)
否则式子值为(0)对答案无贡献

[=1*sum_{n|n}f(n) ]

[=f(n) ]

综上所述

[sum_{d|n}mu(d)F(frac n d)=f(n) ]

原命题得证!

小结

关于(Mobius)的性质纸上推导了两天,建议多手模
思维量不小~

原文地址:https://www.cnblogs.com/rui-4825/p/13751184.html