莫比乌斯函数和反演

首先根据算术基本定理,得到

[ N=p_1^{c_1}p_2^{c_2}cdots p_n^{c_n} ]

定义

莫比乌斯函数为

[mu(N)= left{egin{matrix} 0 qquad exists i in [1,n] c_i>1 \ 1 qquad n为偶数(这里的偶数定义包括0) qquad forall i in [1,n] c_i=1 \ -1 qquad n为奇数 qquad forall i in [1,n] c_i=1 \ end{matrix} ight. ]

简单来说,当N包含两个相同质因子时,莫比乌斯函数值就是0,比如12=223
当N包含的质因子两两不同时。若N有偶数个,则莫比乌斯函数值为1,反之为1。

若是求单个数的莫比乌斯函数,直接质因数分解。
要求1~n的莫比乌斯函数值,可以用埃氏筛和欧拉筛

埃氏筛
inline void mobius() {
	rep(i, 1, n) {
		mu[i] = 1;
		v[i] = 0;
	}
	rep(i,2,n){
		if(v[i]) continue;
		mu[i]=-1;///iÊÇÖÊÊý£¬ÖÊÒò×ÓÖ»Óб¾ÉíÒ»¸ö  
		for(register int j(2*i);j<=n;j+=i){
			v[j]=1;
			if((j/i)%i==0) mu[j]=0;//jÄÜÕû³ýÖÊÊýi^2 
			else mu[j]*=-1
		}
	}
}
欧拉筛
inline void  Euler_mobius(int N) {
	mu[1] = 1;
	for(register int i(2); i < N; ++i) {
		if(!v[i]) {
			v[i] = 1;
			mu[i] = -1;
			prime[++cnt] = i;
		}
		rep(j, 1, cnt) {
			if(1ll * prime[j]*i > N || prime[j] > i) break;

			v[i * prime[j]] = prime[j];

			if(i % prime[j] == 0) {
				mu[i * prime[j]] = 0;
				break;
			} else mu[i * prime[j]] = -mu[i];
		}
	}
}

性质
1.对于任意正整数n有

[sum_{d ackslash N} mu(d)=[n=1] (中括号的表达式是艾佛森约定,可以自己百度下) ]

证明:
当n=1,显然成立
当n>1,在n的所有因子中,莫比乌斯值不为零的只有所有质因子个数都为1,其中质因数为r个的因子数量有(inom{N}{r})
那么有

[sum_{d ackslash N} mu(d)= inom{n}{0} -inom{n}{1}+inom{n}{2}cdots (-1)^n inom{n}{n}=sum_{i=0}^n (-1)^i inom{n}{i} ]

至于正负号的,是容斥系数

根据二项式定理

[(x+y)^n=sum_{i=0}^n inom{n}{i} x^i y^{n-i} ]

令x=-1,y=1

[sum_{i=0}^n (-1)^i inom{n}{i} =0 ]

证毕

2.对于任意正整数n有

[ sum_{d ackslash N} frac{ mu(d)} {d} = frac{varphi(N)}{N} ]

证明:
(F(N)=N ,f(N)=varphi(N)),代入莫比乌斯反演公式即可
证毕

狄利克雷卷积

莫比乌斯反演

(F(N)和f(N))是定义在非负整数集合上的两个函数,且有

[ F(N)=sum_{d ackslash N} f(N) ]

我们可以有

[egin{align} F(1)&=f(1) \ F(2)&=f(1)+f(2) \ F(3)&=f(1)+f(3) \ F(4)&=f(1)+f(2)+f(4) \ F(5)&=f(1)+f(5) \ F(6)&=f(1)+f(2)+f(3)+f(6) \ F(7)&=f(1)+f(7) \ F(8)&=f(1)+f(2)+f(4)+f(8) \ end{align} ]

于是我们有

[egin{align} f(1)&=F(1) \ f(2)&=F(2)-F(1) \ f(3)&=F(3)-F(1) \ f(4)&=F(4)-F(2) \ f(5)&=F(5)-F(1) \ f(6)&=F(6)-F(3)-F(2)+F(1) \ f(7)&=F(7)-F(1) \ f(8)&=F(8)-F(4) \ end{align} ]

于是很容易通过观察得到

[egin{align} F(N)&=sum_{d ackslash N} f(N) \ Downarrow \ f(N)&=sum_{d ackslash N}mu(d)F(frac{N}{d}) end{align} ]

*证明

[1.从定义出发,一直推和式(推得要吐血,手上的资料要么有错要么看不懂,这需要和式基础十分牢固,大概跟做高考题那么牢固才推荐这个方法。) 2.狄利克雷卷积证明(这个比较漂亮) **证明** 证毕 莫比乌斯反演还有第二种形式 ]

egin{align}
F(n)&= sum_{n ackslash d} f(d)
Downarrow
f(n)&=sum_{n ackslash d} mu(frac{d}{n}) F(d)
end{align}

[**证明** ]

[证毕]

本文来自博客园,作者:{2519},转载请注明原文链接:https://www.cnblogs.com/QQ2519/p/15139221.html

原文地址:https://www.cnblogs.com/QQ2519/p/15139221.html