<更新提示>
<第一次更新>
<正文>
简单积性函数
在学习欧拉函数的时候,相信读者对积性函数的概念已经有了一定的了解。接下来,我们将相信介绍几种简单的积性函数,以备(dirichlet)卷积的运用。
定义
数论函数:在数论上,对于定义域为正整数,值域为复数的函数,我们称之为数论函数。
积性函数:对于数论函数(f),若满足(gcd(a,b)=1)时,有(f(ab)=f(a)f(b)),则称函数(f)为积性函数
简单积性函数
约数个数函数
约数和函数
元函数
恒等函数
单位函数
欧拉函数
(Möbius)函数
简单积性函数的求解
与经典的(Möbius)函数和欧拉函数同理,这些积性函数都是可以通过线性筛的过程顺带地求出来的,我们不再详细讨论,具体可以参见(hezlik)的博客。
dirichlet卷积
定义
(dirichlet)卷积是数论函数之间的一种运算,我们设有两个数论函数(f)和(g),它们的定义域为正整数([1,n]),那么它们的(dirichlet)卷积可以如下表示:
我们可以简单地用(O(nlog_2n))的时间求出两个函数的(dirichlet)卷积,其时间复杂度可以使用调和级数证明。
(Code:)
inline void dirichlet(long long *a,long long *b)
{
long long res[N]={};
for (int i=1;i<=n;i++)
for (int j=1;j*i<=n;j++)
res[i*j] = (res[i*j] + a[i] * b[j] % Mod) % Mod ;
memcpy( a , res , sizeof res );
}
性质
(1.) 两个积性函数(f)和(g)的(dirichlet)卷积仍为积性函数。
证明:
设有两个积性函数(f)和(g),则它们的(dirichlet)卷积为:
对于函数(h)则可以得到:
故函数(h)为积性函数。
(2.) (dirichlet)卷积满足交换律。
证明:
设有数论函数(f)和(g),则有
(3.) (dirichlet)卷积满足结合律。
证明:
设有数论函数(f),(g)和(h),则有
(4.)(dirichlet)卷积满足分配律。
证明:
设有数论函数(f),(g)和(h),则有
简单卷积
(1.) (f imes e=f)
证明:
由上,我们证明了(dirichlet)卷积这种运算的单位元为原函数(e),我们可以进一步地定义出数论函数(f)的逆函数(f^{-1}),使得(f imes f^{-1})成立,可以用如下方式构造:
(2.) (e=mu imes I)
证明:
考虑(Möbius)函数的一个性质,对于质数(p)和整数(a)满足(p
ot|a),有(mu(ap)+mu(a)=0),这是可以由(Möbius)函数的定义得到的,那么我们设(n=prod_{i=1}^kp_i^{a_i}),则
事实上枚举了(n)的每一个约数,并对其的(mu)函数值进行了求和。
设(P={1,p_1,p_2,...,p_{k-1}}),由此可得:
由(mu)函数的性质可知:
而(n=1)时((mu imes I)(1)=1),所以有(e=mu imes I)。
(3.) (phi=mu imesε)
证明:
欧拉函数是可以用容斥原理算的,考虑到(mu)函数的定义,发现(mu)可以恰好可以作为欧拉函数的容斥系数,即有:
(4.) (sigma=I imes epsilon)
证明:
利用定义展开,得
(5.) ( au=I imes I)
证明:
利用定义展开,得
简单运用
(1.) 欧拉函数具有性质:(n=sum_{d|n}phi(frac{n}{d}))
证明:
(2.) 两次(dirichlet)卷积,可以得到:(sigma= au imesphi)
证明:
(3.) 可以推得(Möbius)定理:(F(n)=sum_{d|n}f(d)Leftrightarrow f(n)=sum_{d|n}mu(d)F(frac{n}{d}))
证明:
已知(F=I imes f),试证明(f=mu imes F),可以利用(dirichlet)卷积推导:
运用
多数时候,对于约数求和式和一些有关数论函数的运算都可以和(dirichlet)卷积搭上关系,相当于可以作为推导式子的一个有用工具,其关键在于熟悉定义及其运算,重要常见的几个卷积需要我们牢记。
<后记>