数论函数
f
(
n
)
f(n)
f(n)的生成函数是
F
(
x
)
=
∑
n
≥
1
f
(
n
)
n
x
F(x)=\sum_{n\geq1}f(n)n^x
F(x)=∑n≥1f(n)nx
发现两个数论函数
f
(
x
)
,
g
(
x
)
f(x),g(x)
f(x),g(x)的生成函数
F
(
x
)
,
G
(
x
)
F(x),G(x)
F(x),G(x)的卷积
H
(
x
)
H(x)
H(x)就是
f
(
x
)
,
g
(
x
)
f(x),g(x)
f(x),g(x)的狄利克雷卷积
h
(
x
)
h(x)
h(x)的生成函数(因为
f
(
i
)
i
x
g
(
j
)
j
x
f(i)i^xg(j)j^x
f(i)ixg(j)jx对
H
(
x
)
H(x)
H(x)中的
(
i
j
)
x
(ij)^x
(ij)x的贡献是
f
(
i
)
g
(
j
)
f(i)g(j)
f(i)g(j))
数论函数快速幂和多项式快速幂一样,考虑先ln,再exp
ln
F
(
x
)
=
∫
F
′
(
x
)
F
(
x
)
\ln F(x)=\int\frac{F'(x)}{F(x)}
lnF(x)=∫F(x)F′(x),狄利克雷除法就是考虑狄利克雷卷积,发现
g
(
n
)
=
(
f
∗
g
)
(
n
)
−
∑
d
∣
n
∧
d
<
n
g
(
d
)
f
(
n
d
)
g(n)=(f*g)(n)-\sum_{d|n\wedge d<n}g(d)f(\frac nd)
g(n)=(f∗g)(n)−∑d∣n∧d<ng(d)f(dn),递推即可。而由于
n
x
n^x
nx的导数为
n
x
ln
n
n^x\ln n
nxlnn,故
F
′
(
x
)
=
∑
n
≥
1
f
(
n
)
x
n
ln
n
F'(x)=\sum_{n\geq 1}f(n)x^n\ln n
F′(x)=∑n≥1f(n)xnlnn,但是
l
n
ln
ln大部分时候不是整数,可以用别的函数来代替
l
n
ln
ln,比如可重质因子个数
c
n
t
cnt
cnt,因为满足
c
n
t
x
c
n
t
y
=
c
n
t
x
y
cnt_xcnt_y=cnt_{xy}
cntxcnty=cntxy,而积分则是将求导反过来
(
exp
F
(
x
)
)
′
=
F
′
(
x
)
exp
F
(
x
)
(\exp F(x))'=F'(x)\exp F(x)
(expF(x))′=F′(x)expF(x),与狄利克雷除法类似,递推一下即可