Dirichlet卷积及积性函数详解

Dirichlet卷积 (狄利克雷卷积)

定义

若有两个函数$f$与$g$,则其$Dirichlet$卷积为($*$为卷积,为避免混淆,乘号用$\times$表示)
$$ f(n) * g(n)= \sum_{d|n}f(d)g(\frac{n}{d}) $$

一些性质

交换律:$f*g=g*f$

结合律:$(f*g)*h=f*(g*h)$

分配律:$f*(g+h)=f*g+f*h$

单位元$\epsilon$

定义元函数:$\epsilon(n)=[n=1]$

其中$[a]$指如果$a$为真,其值为1,反之则为0。

所以$f*\epsilon=\epsilon*f=f$

证明:$$f(n)*\epsilon(n)=\sum_{d|n}f(d)\epsilon(\frac{n}{d})$$
$$\because \qquad 当\frac{n}{d} \neq 1时 \Longrightarrow\epsilon(\frac{n}{d})=0\Longrightarrow f(d)\epsilon(\frac{n}{d})=0$$
$$\therefore \qquad f(n)*\epsilon(n)=\sum_{d|n且d\neq n}f(d)\epsilon(\frac{n}{d})+f(n)\epsilon(1)=f(n)$$

积性函数

对于一个函数$f$,若对于所有互质的正整数$a,b$,均有$f(ab)=f(a)f(b)$,则$f$为一个积性函数。

对于一个函数$f$,若对于所有正整数$a,b$,均有$f(ab)=f(a)f(b)$,则$f$为一个完全积性函数。

数学语言:

对于函数$f$,若对于$\forall a,b \in N^+,\gcd(a,b)=1$,都有$f(ab)=f(a)f(b)$,则$f$为一个积性函数。

对于函数$f$,若对于$\forall a,b \in N^+$,都有$f(ab)=f(a)f(b)$,则$f$为一个积性函数。

性质:对于两个积性函数$f,g$,$f*g$也为积性函数

一些常见的积性函数

1.除数函数:$n$的约数的$k$次幂之和,$\sigma_k(n)=\sum_{d|n} d^k$。

2.约数个数函数:$n$的约数个数,$d(n)=\sigma_0(n)=\sum_{d|n}1$。

3.约数和函数:$n$的所有约数之和,$\sigma(n)=\sigma_1 (n)=\sum_{d|n}d$。

4.欧拉函数:$[1,n]$中与$n$互质的数的个数,$\phi(n)=\varphi(n)=\sum_{n}^{i=1}[gcd(i,n)=1]$。

5.莫比乌斯函数:定义式:

对于一个数$n$,$\sum_{d|n}\mu(d)=[n=1]$

即当$n$不等于$1$时,$n$所有因子的莫比乌斯函数值的为$0$

求解该递归式:

其中$t$为$n$质因子个数

6.元函数:$\epsilon(n)=[n=1]$。

7.幂函数:$n$的$k$次方。$Id_k(n)=n^k$。

8.恒等函数:$I(n)=Id_0(n)=1$。

9.单位函数:$Id(n)=Id_1(n)=n$。

一些恒等式

1.$I*I=d$

$$I(n)*I(n)=\sum_{d|n}I(d)I(\frac{n}{d})=\sum_{d|n}1=d(n)$$

2.$Id*I=\sigma$

$$Id(n)*I(n)=\sum_{d|n}Id(d)I(\frac{n}{d})=\sum_{d|n}d=\sigma(n),即Id*I=\sigma$$

3.$\mu*I=\epsilon$

$$\mu(n)*I(n)=\sum_{d|n}\mu(d)I(\frac{n}{d})=\sum_{d|n}\mu(d)=\epsilon(n),即\mu*I=\epsilon$$

4.$\varphi*I=Id$

由$\varphi$的定义知,它还可以表示分母为$n$的最简真分数个数。

所以列出分数$\frac{1}{n},\frac{2}{n},\frac{3}{n},...,\frac{n}{n}$,再约分,以分母分别统计可得

$$\varphi(n)*I(n)=\sum_{d|n}\varphi(d)I(\frac{n}{d})=\sum_{d|n}\varphi(d)=n=Id(n),即\varphi*I=Id$$

5.$\varphi=Id*\mu$

$$\because \qquad \varphi*I=Id$$

$$\therefore \qquad \varphi*I*\mu=Id*\mu$$

$$\therefore \qquad \varphi*\epsilon=Id*\mu$$

$$\therefore \qquad \varphi=Id*\mu$$

唯一分解定理

任何一个大于1的自然数 N,如果N不为质数,那么N可以唯一分解成有限个质数的乘积

即$n=\prod_{i=1}^{t}p_i^{k_i}$

欧拉函数

通项公式

$$\varphi(n)=\prod_{i=1}^{t}(p_i-1)p_i^{k_i-1}=\prod_{i=1}^{t}(1-\frac{1}{pi})p_i^{k_i}=n\prod_{i=1}^{t}(1-\frac{1}{pi})$$

欧拉定理

$$a^{p-1}\equiv1(mod\space \space p)\qquad p为质数$$

证明:

若$ma-na \equiv 0(mod\space \space p)$且$gcd(a,p)=1$,则$(m-n)$为$p$的倍数

那么 $a,2a,3a,...,(p-1)a\%p$的余数必定各不相同,分别为$1,2,3,...,(p-1)$,($a$不为$p$的倍数)

全部相乘,得

$$(p-1)!a^{p-1}\equiv(p-1)!(mod\space\space p)$$

$$a^{p-1}\equiv1(mod\space \space p)$$

广义欧拉定理

$$a^{\varphi(p)}\equiv1(mod\space \space p)\qquad gcd(a,p)=1$$

应用:在快速幂中指数过大,如求$a^{b^c}\%p\qquad(p为质数)$时$(a,b,c<=10^{12})$就可以

long long quickpow(long long a, long long b, long long Mod);
int main()
{
    int a, b, c, p;
    scanf("%lld%lld%lld%lld", &a, &b, &c, &p);
    printf("%lld\n",quickpow(a,quickpow(b,c,p-1),p);
    //printf("%lld\n",quickpow(a,quickpow(b,c,phi(Mod)),Mod));
}
快速幂

$3.Id=\varphi*I$

$4.\varphi=\mu*Id$

$5.\sum_{n}^{i-1}[gcd(i,n)=1]\times i=\frac{n\times\varphi(n)+[n=1]}{2}$

证明:当$n=1$时,易证等式成立

当$n\not =1$时,因为$gcd(i,n)=gcd(n-i,n)$,所以所有的$i$必成对出现,一共有$\frac{\varphi(n)}{2}对$,所以和为$\frac{n\times\varphi(n)}{2}$

$6.\varphi(ij)=\frac{\varphi(i)\varphi(j)gcd(i,j)}{\varphi(gcd(i,j))}$

证明:由于$\varphi$为积性函数,所以我们只需证明满足质数的整数次幂的情况。

当$i=1或j=1$时显然成立。

设$i=p^s,j=p^t$,则

$$\frac{\varphi(i)\varphi(j)gcd(i,j)}{\varphi(gcd(i,j))}$$

$$=\frac{(p-1)^2p^{s+t+min(s,t)-2}}{(p-1)p^{min(s,t)-1}}$$

$$=(p-1)p^{s+t-1}$$

$$=\varphi(p^{s+t})=\varphi(ij)$$

莫比乌斯函数

首先,要明白它的定义式:

对于一个数n,$\{\sum_{d|n}\mu(d)\}=[n=1]$

当$n$不等于$1$时,$n$所有因子的莫比乌斯函数值的$和$为$0$。

易得,$\mu(1)=1$,取$n=p^k$($p$为质数,$k>1$),由定义式可得:

$$\mu(n)=\mu(1)+\mu(p)+\mu(p^2)+...+\mu(p^{k-1})=0$$

取$k=2$,得$\mu(p)=-1$

然后可以进一步推出对于$∀k≥2,\mu(p^k)=0$

然后我们就得到了一个结论:当$n$的一个质因子的次数大于等于$2$时,$\mu(n)=0$

由于$\mu$函数为积性函数,所以$\mu(ij)=\mu(i)\mu(j)$

当$n$不存在一个质因子的次数大于$2$时,我们设$n=\prod_{i=1}^{t}p_i$

$$\therefore \qquad \mu(n)=\mu(p_1)\times\mu(p_2)\times...\times\mu(p_t)=(-1)^t$$

综上所述

约数个数函数

一个重要的性质

$$d(ij)=\sum_{k|i}\sum_{l|j}[gcd(k,l)=1]$$

证明:

设$q$为$ij$的一个因子(可以是质因子),设$q=s\times p^t$($p$为质数)

设$i=i'\times p^a,j=j'\times p^b$,由于$q$为$ij$的一个因子,必有$t≤a+b$

如果$t≤a$,就取$k=m\times p^t$以保证$gcd(k,l)=1$

否则取$k$满足$gcd(k,p)=1$,$t=n\times p^{t-a}$,此时$gcd(k,l)=1$。

这样可以保证对于$ij$的每一个约数都存在唯一一种分解方案,该性质成立。

 

posted @ 2020-06-01 16:24  verjun  阅读(561)  评论(0编辑  收藏  举报