前置知识
引理一
[forall a,b,c in mathbb{Z}, lfloorfrac{a}{bc}
floor = lfloorfrac{lfloor{frac{a}{b}}
floor}{c}
floor
]
证明 :
设
[frac{a}{b}=lfloorfrac{a}{b}
floor+r (0le r <1)
]
所以
[egin{align}
lfloorfrac{a}{bc}
floor &=lfloorfrac{a}{b}cdotfrac{1}{c}
floor \
&=lfloorlfloorfrac{a}{b}
floorcdotfrac{1}{c}+rcdotfrac{1}{c}
floor \
&=leftlfloorfrac{lfloor{frac{a}{b}
floor}}{c}
ight
floor
end{align}
]
引理二
[forall ninmathbb{N}, left| left{ lfloorfrac{n}{d}
floormid dinmathbb{N}
ight}
ight| le lfloor 2sqrt n
floor
]
略证 :
当 (dle sqrt n) 时, (lfloorfrac{n}{d}
floor) 最多有 (sqrt n) 个值,
当 (d>sqrt n) 时, 每个 (lfloor frac{n}{d}
floor) 都对应一个小于 (sqrt n) 的值, 所以也最多有 (sqrt n) 个值,
故, (lfloor frac{n}{d}
floor) 最多有 (2sqrt n) 个值.
数论分块
概念
对于含有 (lfloor frac{n}{i}
floor) 的求和式子, 设集合 (S = left{ imid lfloor frac{n}{i}
floor =d
ight}), 用集合 (S) 中的最大值 (j) 来代替集合中的值.
结论
[j=leftlfloorfrac{n}{lfloor frac{n}{i}
floor}
ight
floor
]
证明 :
[egin{align}
&ecause lfloorfrac{n}{i}
floor le frac{n}{i} \
& herefore leftlfloor frac{n}{lfloorfrac{n}{i}
floor}
ight
floor ge leftlfloor
frac{n}{frac{n}{i}}
ight
floor = lfloor i
floor = i \
& herefore i le leftlfloor frac{n}{lfloorfrac{n}{i}
floor}
ight
floor
end{align}
]
数论函数
定义
定义域为 (mathbb{N_+}) 的函数.
积性函数
定义
若 (forall x,y in mathbb{N_+}) 且 (gcd(x,y)=1) , 有 (f(xy)=f(x)f(y)), 则称数论函数 ** (f(x)) 为积性函数**.
性质
若 (f(x),g(x)) 为积性函数, 则以下函数也为积性函数.
[h(x)=f(x^p)
]
[h(x)=f^p(x)
]
[h(x)=f(x)g(x)
]
[h(x)=sum_{d|x} f(x)g(frac{x}{d}) = sum_{ij=x} f(i)g(j)
]
证明 :
[egin{align}
h(x)h(y) &=left( sum_{ij=x} f(i)g(j)
ight) cdot left( sum_{ij=y}f(i)g(j)
ight) \
&=sum_{ij=xy}f(i)g(j) \
&=h(xy)
end{align}
]
(PS.) 第二个等号是因为 (x,y) 互质, 且 (f,g) 为积性函数.
例子
-
单位函数
[varepsilon (n)=[n=1]
]
-
恒等函数 ( (k) 默认为 (1) )
[id_k(n)=n^k
]
-
常数函数
[1(n)=1
]
-
除数函数( (k) 默认为 (1) )
[sigma_k(n)=sum_{d|n}d^k
]
-
欧拉函数
[varphi(n)=sum_{i=1}^n left[gcd(i,n)==1
ight]
]
-
莫比乌斯函数
Dirichlet 卷积
定义
两个数论函数 (f(n),g(n)) 的 (Dirichlet) (狄利克雷) 卷积 (h(n)) 也同样为数论函数, 记为 (h=f*g).
[h(n) = sum_{d|n}f(d)g(frac{n}{d})
]
性质
- 满足交换律和结合律.
- 单位函数 $varepsilon $ 为 (Dirichlet) 卷积的单位元, 即对任意数论函数 (f(n)) , 都有 (f*varepsilon =f).
例子
( (1) 为常数函数 (1(n)=1) )
[epsilon = mu * 1 Longleftrightarrow epsilon(n)=sum_{d|n}mu(d)
]
- (d(n)) 为约数函数, 表示 (n) 的约数个数
[d=1*1 Longleftrightarrow sum_{u|d}1
]
[sigma = id*1 Longleftrightarrow sigma(n)=sum_{d|n}d
]
[varphi = mu *id Longleftrightarrow varphi(n)=sum_{d|n}mu(d)frac{n}{d}
]
[id=varphi*1 Longleftrightarrow n=sum_{d|n}varphi(d)
]
莫比乌斯函数
定义
[mu(n) = left{
egin{aligned}
&1, & n=1 \
&0, & n含有平方因子 \
&(-1)^k, & k 为 n 的本质不同的质因子个数
end{aligned}
ight.
]
(PS.) 本质不同的质因子个数
即为 质因子的种类个数.
性质
[egin{aligned}
sum_{d|n} mu(d)
&= left{
egin{align}
&1, &n=1 \
&0, &n
ot=1
end{align}
ight. \
&= varepsilon(n)
end{aligned}
]
证明 :
[egin{align}
设 n 在算数基本定&理下表示为 p_1^{c_1}p_2^{c_2}cdots p_k^{c_k} \
sum_{d|n}mu(d)
&= sum_{i=0}^{k} C_k^i(-1)^i \
&= [1+(-1)]^k \
&= 0^k
end{align}
]
结论
[[gcd(i,j)=1]=sum_{d|gcd(i,j)}mu(d)
]
线性筛
void _mu(){
mu[1]=1;
for(int i=2;i<=n;i++){
if(!v[i]){ pri[++pri[0]]=i; mu[i]=-1; } \ pri 中存的是质数
for(int j=1;j<=pri[0]&&i*pri[j]<=n;j++){
v[i*pri[j]]=1;
if(i%pri[j]) mu[i*pri[j]]=-mu[i];
else{ mu[i*pri[j]]=0; break; }
}
}
}
莫比乌斯反演
公式
形式 1
[若f(n)=sum_{d|n}g(d), 则 g(n)=sum_{d|n}mu(d)f(frac{n}{d})
]
形式 2(注意这里 (mu) 和 (f) 的顺序不能反)
[若 f(x)=sum_{x|d}^n g(d), 则 g(x)=sum_{x|d}^nmuleft(frac{d}{x}
ight)f(d)
]
证明 :
[egin{align}
法一&: \
&ecause f=g*1, \
& herefore f*mu=g*1*mu=g*varepsilon=g, 得证. \
\
法二&: \
&
egin{aligned}
sum_{d|n}mu(d)f(frac{n}{d})
&=sum_{d|n}mu(d)sum_{t|frac{n}{d}}g(t) \
&=sum_{t|n}g(t)sum_{d|frac{n}{t}}mu(d) \
&=sum_{t|n}g(t)left[frac{n}{t}=1
ight] \
&=g(n)
end{aligned}
end{align}
]