Don't let your dreams be dreams.

WELCOME——一只蒟蒻的幻想

省选与之前数论函数讲课的搬运和整合

感觉这次省选讲课里好像只有洲爷的课正常,于是就来写一写

好像找不到歌了。。(:з」∠)换一种风格的发发
突然想起来好像给初三讲数论函数的是我。。(:з」∠),我自己都不会怎么讲。要出事了。
以下内容中涉及函数均为数论函数,即定义域为正整数的函数。
以下内容纯属搬运与口胡,若有错误,欢迎指出(请当做没看见)



 

积性函数

积性函数:$\forall a,b \in N^+,\ gcd(a,b)=1,\ f(a\cdot b)=f(a)\cdot f(b)$
一些常见的积性函数:
欧拉函数:

  • $\varphi(n)$表示$n$以内与$n$互质的数的个数。
  • 设$n=p_1^{q_1}\cdot p_2^{q_2}\ldots p_k^{q_k}$,$\varphi(n)=n\cdot \Pi_{i=1}^{k} \frac {p_i-1}{p_i}$

莫比乌斯函数:

  • 如果$n$有平方因子,则$\mu (n)=0$
  • 如果$n$没有平方因子,则设$n=p_1^{q_1}\cdot p_2^{q_2}\ldots p_k^{q_k}$,$\mu (n)=(-1)^k$

除数函数:

  • $\sigma _k(n)$表示$n$的所有正因子的$k$次幂的和。
  • 特别的
    • $d(n)=\sigma _0(n)$表示$n$的正因子个数。
    • $\sigma(n)=\sigma_1(n)$表示$n$的所有正因子之和。

最大公因数函数:

  • $gcd(n,k)$在$k$为固定时,$n,k$的最大公因数。



完全积性函数:$\forall a,b \in N^+\ ,f(a\cdot b)=f(a)\cdot f(b)$
一些常见的完全积性函数:
幂函数:

  • $ld_k(n)=n^k$
  • 特别的
    • $1(n)=ld_0(n)=1$
    • $ld(n)=ld_1(n)=n$

单位函数:

  • $\rm e(n)=\epsilon (n)=\begin{cases}1 & n=1 \\0 & n>1\end{cases}$



积性函数的一些性质
性质一:

  • 设$n=p_1^{q_1}\cdot p_2^{q_2}\ldots p_k^{q_k}$,$f(n)=\Sigma_{i=1}^{k} f(p_i^{q_i})$
  • 所以如果可以快速求出$f(p_k^{q_k})$的值,就可以用Euler筛法$O(n)$求出所有$f(i)(i\leq n)$的值。

性质二:

  • 若$f,g$为积性函数,那么
    • 它们的点积$(f\cdot g)(i)=f(i)\cdot g(i)$也是积性函数
    • 它们的商$(\frac {f}{g})(i)=\frac {f(i)}{g(i)}$也是积性函数


Back To Menu


$Dirichlet$卷积

定义:

  • 两个数论函数$f,g$的$Dirichlet$卷积为:$$(f*g)(n)=\sum_{d|n} f(d)\cdot g(\frac {n}{d})$$



性质:

  • 交换律:$f*g=g*f$
  • 结合律:$(f*g)*h=f*(g*h)$
  • 分配律:$f*(g+h)=f*g+f*h$
  • 单位元:$\epsilon*f=f$
  • 若$f,g$为积性函数,则$f*g$也为积性函数



一些常见的$Dirichlet$卷积:

  • $d(n)=\sum_{d|n} 1\Leftrightarrow d=1*1$
  • $\sigma(n)=\sum_{d|n} d\Leftrightarrow \sigma=1*ld$
  • $\epsilon(n)=\sum_{d|n}\mu(d)\Leftrightarrow \epsilon=1*\mu$
  • $\varphi(n)=\sum_{d|n}\mu(d)\cdot \frac {n}{d} \Leftrightarrow \varphi=\mu*ld$
  • $n=\sum_{d|n}\varphi(d)\Leftrightarrow ld=1*\varphi$


Back To Menu


莫比乌斯反演

莫比乌斯反演公式:

  • 如果两个数论函数$f,g$满足$$f(n)=\sum_{d|n}g(d)$$
  • 则它们满足$$g(n)=\sum_{d|n}\mu(d)\cdot f(\frac{n}{d})$$
  • 反之亦然
  • 写成$Dirichlet$卷积形式为$f=g*1\Leftrightarrow g=\mu*f$



证明:

  • 设,$f=g*1$
  • 两边都卷上,$\mu$,得$\mu*f=\mu*g*1$
  • 整理得,$\mu*f=\epsilon*g=g$
  • 两边都卷上1,$g*1=\mu*f*1=\epsilon*f=f$
  • 证毕



莫比乌斯等式:

  • $${\rm e}(n)=\sum_{d|n}\mu(d)$$
  • 设$$n=\sum_{i=1}^{k} p_i^{q_i},\ n’=\sum_{i=1}^{k}p_i,\ S=\lbrace 1,2,\ldots ,k\rbrace $$
  • 那么$$\sum_{d|n}\mu(d)=\sum_{d|n’}\mu(d)=\sum_{I\subseteq S}(-1)^I=\sum_{i=0}^{k}{k \choose i}(-1)^i=(1-1)^k$$
  • 证毕



简单的应用:

  • $$\varphi=\mu*ld\Leftrightarrow ld=\varphi*1$$
  • $$\varphi(n)=\sum_{d|n}\mu(d)\cdot \frac{n}{d}\Leftrightarrow n=\sum_{d|n}\varphi(d)$$



另一种形式:

  • 在整数集$D$中,$$f(x)=\sum_{x|d,d\in D}g(d)\Leftrightarrow g(x)=\sum_{x|d,d\in D}\mu(d)f(\frac{d}{x})$$
  • 两种形式的本质都是容斥原理


Back To Menu


一类积性函数求前缀和问题

4.22 这个坑不知道已经在这里多久了。。(:з」∠) 。。终于要来填掉了。。

我们知道一般的积性函数可以用欧拉筛$O(n)$求值,但是在一些题目里要求在低于线性的复杂度下求积性函数的前缀和。这个时候我们就需要一种更加高效的求前缀和的算法。

现在OI圈里比较常见的方法是杜教筛,可以做到在$O(n^{\frac{3}{4}})$或$O(n^{\frac{2}{3}})$的时间内求出积性函数的前缀和。


杜教筛:

  • 现在我们要求$S(n)=\sum_{i=1}^{n}f(i)$
  • 我们可以找出另一个函数g,然后考虑$(g*f)(n)$的前缀和
    $$
    \begin{align}
    &\ \sum_{i=1}^{n}(f*g)(i) \\
    = &\ \sum_{i=1}^{n}\sum_{j|i}f(j)g(\frac{i}{j}) \\
    = &\ \sum_{\frac{i}{j}}^{n}\sum_{j=1}^{\left\lfloor\cfrac{n}{\frac{i}{j}}\right\rfloor}f(j)g(\frac{i}{j}) \\
    = &\ \sum_{i=1}^{n}g(i)\sum_{j=1}^{\lfloor\frac{n}{i}\rfloor}f(j) \\
    = &\ \sum_{i=1}^{n}g(i)S(\lfloor\frac{n}{i}\rfloor) \\
    \end{align}$$
  • 然后我们就可以得到一个关于$S(n)$的递推式$$g(1)S(n)=\sum_{i=1}^{n}(f*g)(i)-\sum_{i=2}^{n}g(i)S(\lfloor\frac{n}{i}\rfloor)$$
  • 所以如果我们可以快速的求出$g$和$(f*g)$的前缀和,那就可以用记忆化搜索做到$O(n^{\frac{3}{4}})$的复杂度。如果原函数也可以快速求前缀和,那我们可以预处理$\sqrt{n}$以内的结果,这样就可以做到$O(n^{\frac{2}{3}})$的复杂度.
  • 现在我们已经可以很轻松的求出简单的积性函数如$\varphi\ \mu$的前缀和了
  • 但是对于一些比较复杂的函数,想要找一个合适的g是比较困难的。对于较复杂的函数一般有两个比较基本的形式
    • 求$S(n)=\sum_{i=1}^{n}(f*g)(i)$的值,$g(i)$为完全积性函数,这时有$$S(n)=\sum_{i=1}^{n}[(f*1)\cdot g](i)-\sum_{i=2}^{n}S(\lfloor\frac{n}{i}\rfloor)$$
    • 求$S(n)=\sum_{i=1}^{n}(f*g)(i)$的值,这时有$$S(n)=\sum_{i=1}^{n}g(i)\sum_{ij<=n}(f*1)(j)-\sum_{i=2}^{n}S(\lfloor\frac{n}{i}\rfloor)$$
  • 有了这些性质我们就可以较容易地求出积性函数的前缀和了


Back To Menu


有错误请指出$$\mathcal {FIN.}$$