从基础数论函数说起1:整除分块、数论函数、狄利克雷卷积

本文内容:整除分块、几种常见的数论函数和狄利克雷卷积。

整除分块

在数论相关的题中,常常会遇到带有 \(\lfloor\frac{n}{i}\rfloor\) 求和的式子。而考虑到有很多 \(i\) ,它们的 \(\lfloor\frac{n}{i}\rfloor\) 都是一样的(最多 \(\lfloor2\sqrt{n}\rfloor\) 个)。所以可以在 \(O(\sqrt{n})\) 的时间内解决(如果剩下部分可以 \(O(1)\) 计算的话)。可以看下面的代码:

for( int x = 1, y; x <= N; x = y + 1 ) {
    y = min( N / ( N / x ), M / ( M / x ) );
}

数论函数

定义

定义域为 正整数 的函数为 数论函数

如果 \(\forall a,b,\gcd(a,b)=1\) ,有 \(f(ab)=f(a)f(b)\) ,则称这个函数是 积性函数 ,如果 \(\forall a, b\) ,有 \(f(ab)=f(a)f(b)\) ,则称这个函数是 完全积性函数

单位函数 \(e(n)=[n=1]\) 。(当 \([]\) 中值为真时,取值为 \(1\) ,否则为 \(0\) 。) 是完全积性函数。

幂函数 \(id_k(n)=n^k\) 。是完全积性函数。

欧拉函数 \(\phi(n)=\sum\limits_{i=1}^n[\gcd(n,i)=1]\) 。是积性函数。

证明:

\(\phi(n)=n-N\)\(\phi(m)=m-M\) 。(即 \(n\) 不为 \(1\) 的因子有 \(N\) 个, \(m\) 不为 \(1\) 的因子有 \(M\) 个。)那么 \(nm\) 不为 \(1\) 的因子有 \(nM+mN-MN\) 个(容斥原理)。

\(\phi(nm)=nm-nM-mN+NM=\phi(n)\phi(m)\)

除数函数 \(\sigma_k(n)=\sum\limits_{d|n}d^k\) 。或记为 \(d(n),\tau(n)\) ,是积性函数。

证明:

由于 \(\gcd(n,m)=1\) ,那么 \(\forall a|n, b|m\) ,都有 \(\gcd(a,b)=1\) 。那么 \(n\) 的因数乘上 \(b\) 的因数是 \(nm\) 的因数,且不会重复。所以 \(\sigma_k(n)\sigma_k(m)=\sigma_k(nm)\)

莫比乌斯函数 \(\mu(n)\) 。当 \(n\) 有平方因子的时候 \(\mu(n)=0\) 。否则 \(\mu(n)=(-1)^\omega(n)\) 。其中 \(\omega(n)\) 表示 \(n\) 不同质因子的个数。

证明平凡,略。

狄利克雷卷积(Dirichlet 卷积)

定义

两个数论函数 \(f,g\) 的狄利克雷卷积定义为

\[(f*g)(n)=\sum\limits_{d|n}f(d)g(\frac{n}{d}) \]

也可以写成这样:

\[(f*g)(n)=\sum\limits_{ij=n}f(i)g(j) \]

性质

交换律: \(f*g=g*f\)

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

单位函数为单位元: \(f*e=f\)

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

\(f\)\(g\) 都为积性函数时 \(f*g\) 也为积性函数。反过来, 若 \(h=f*g\) 为积性函数, \(f\) 为积性函数,那么 \(g\) 也为积性函数。

证明:

前面已经提到了,如果有 \(\gcd(n,m)=1,a|n,b|m\) ,那么 \(\gcd(a,b)=1\)

\[\begin{aligned} (f*g)(n)\times (f*g)(m) &= \sum\limits_{i_1j_1=n}f(i_1)g(j_1)\times \sum\limits_{i_2j_2=m}f(i_2)g(j_2)\\ &= \sum\limits_{i_1i_2j_1j_2=nm}f(i_1)f(i_2)g(j_1)g(j_2)\\ &= \sum\limits_{ij=nm}f(i)g(j)\\ &= (f*g)(n) \end{aligned} \]

两个等式

\[\sigma_k=id_k * 1 \]

证明:略

\[e=\mu * 1 \]

证明:

\(n\)\(k\) 个不同的质因子,那么

\[\sum\limits_{d|n} \mu(d) = \sum\limits_{i=0}^k (-1)^i \times {k\choose i} \]

根据二项式定理, \((1-1)^k= \sum\limits_{i=0}^k (-1)^i \times {k\choose i}=0^k\)

而由于 \(\mu(1)=1\) ,所以 \(\mu * 1=e\)

posted @ 2019-11-10 19:35  chy_2003  阅读(388)  评论(0编辑  收藏  举报