数论函数相关

一、欧拉函数与积性函数

欧拉函数

  • 定义:欧拉函数 \(φ(n)\) 表示小于等于 \(n\),且与 \(n\) 互质的正整数的个数。

  • 公式
    若在算数基本定理中,\(n=p_1^{c_1}p_2^{c_2}...p_m^{c_m}\)\(p\) 为质数),则由容斥原理:

    \[φ(n)=n*\dfrac{p_1-1}{p_1}*\dfrac{p_2-2}{p_2}*...*\dfrac{p_m-m}{p_m}=n*\prod\limits_{p\mid{n}}{(1-\dfrac{1}{p})}\qquad(p \in primes) \]

    关于此公式的证明,读者可自行推导

一些性质

  1. \(n\) 是质数,则 \(φ(n)=n-1\)

  2. \(n=p^k\),且 \(p\) 为质数,则 \(φ(n)=(p-1)*p^{k-1}\)

  3. \(p\) 是质数,且 \(\begin{cases}p\mid{n}&\Rightarrowφ(nq)=φ(n)*q\\p\nmid{n}&\Rightarrowφ(nq)=φ(n)*(q-1)\end{cases}\)

  4. \(n=\sum\limits_{d\mid{n}}{φ(d)}\)

  5. \(φ(ab)=φ(a)*φ(b)*\frac{d}{φ(d)}\),其中 \(d=\gcd(a,b)\)

积性函数

若一个定义在正整数域上的函数 \(f\),当 \(x,y\) 互质时,有 \(f(xy)=f(x)*f(y)\),则称函数 \(f\)积性函数

特别地,当 \(x,y\) 不互质时仍有 \(f(xy)=f(x)*f(y)\) 的函数称为完全积性函数

常见完全积性函数:

  • \(ϵ(n)=[n=1]\)
  • \(I(n)=1\)
  • \(id_k(n)=n^k\)

常见积性函数

  • 欧拉函数 \(\varphi(n)\)
  • 莫比乌斯函数 \(\mu=I^{-1}\)
  • 除数函数 \(\sigma_k(n)=\sum\limits_{d\mid n}d^k\)
  • 除数函数 \(d(n)=\) \(n\) 的约数个数
  • \(s(n)=n\) 所有约数的和

一些乘积结论

  • \(\mu(ij)=[i\perp j]\mu(i)\mu(j)\)

  • \(φ(ab)=φ(a)*φ(b)*\frac{d}{φ(\gcd(a,b))}\)

  • \(d(ij)=\sum\limits_{x|i}\sum\limits_{y|j}[x\perp y]\)

  • \(\sigma_k(ij)=\sum\limits_{x|i}\sum\limits_{y|j}[x\perp y](\frac{xj}{y})^k\)

除数函数的计算

对于 \(n=p_1^{c_1}p_2^{c_2}\dots p_m^{c_m}\),有:

  • \(d(n)=(c_1+1)(c_2+1)\dots(c_m+1)\)

    \(p\)\(n\) 的最小质因子,有:

    \[d(n)=\begin{cases}2d(n/p)-d(n/p^2)&p^2\mid n\\2d(n/p)&\rm otherwise\end{cases} \]

  • \(\sigma_k(n)=\prod\limits_{i=1}^m(1+p_i+p_i^2+\dots+p_i^{c_i})\)

二、狄利克雷卷积

两个数论函数 \(f(x),g(x)\),则它们的 狄利克雷卷积 得到的结果 \(h(x)\) 定义为:

\[h(x)=\sum\limits_{d\mid x}{f(d)g\left(\frac{x}{d}\right)}=\sum\limits_{ab=x}{f(a)g(b)} \]

一些其它定义

  • 单位元\(ε(n)=[n=1]\)。对于任何数论函数 \(f\),都有 \(f*\varepsilon=f\)

  • \(I(n)=1\)

  • \(id(n)=n\)

性质

  • 满足交换律、结合律、分配律

  • 积性:两个积性函数的狄利克雷卷积仍然是积性函数。积性函数的逆仍是积性函数

常见结论

  • \(\mu * I=ε\)

  • \(\varphi *I=id\)

  • \(id * \mu =\varphi\)

三、莫比乌斯函数

\(I\) 的狄利克雷卷积逆元记为 \(\mu\),称作莫比乌斯函数

设正整数 \(n\)算数基本定理分解质因数为 \(n=p_1^{c_1}p_2^{c_2}\dots p_m^{c_m}\),则

\[\mu(n)=\begin{cases}0&\exists i\in [1,m],\:c_i>1\\1&m\equiv 0 \pmod 2,\:\forall i \in [1,m],\:c_i=1\\-1&m\equiv 1 \pmod 2,\:\forall i \in [1,m],\:c_i=1\end{cases} \]

特别地,\(\mu(1)=1\)

性质

  • 根据“积性函数的逆也是积性函数”可得:莫比乌斯函数是积性函数

整除分块

整除分块是用于解决整除求和问题 \(\sum\limits_{i=1}^n{\left\lfloor\frac{n}{i}\right\rfloor}\)

  • \(\left\lfloor\frac{n}{i}\right\rfloor\) 按相同值分块

  • 可以证明,分块少于 \(2\sqrt{n}\)

for(LL l=1,r; l<=n; l=r+1)
{
	r=n/(n/l);
	ans+=(r-l+1)*(n/l);
}

莫比乌斯反演

反演动机:

\[\sum\limits_{d\mid n}{\mu(d)}=[n=1] \]

\(f(n),g(n)\) 为两个数论函数。

  • 如果有 \(f(n)=\sum\limits_{d\mid n}g(d)\),那么有

    \[g(n)=\sum\limits_{d\mid n}\mu(d)f(\frac{n}{d}) \]

    证明:容易看出,数论函数 \(g(n)\) 的莫比乌斯变换,就是将\(g(n)\)\(1\) 进行狄利克雷卷积。
    \(\because f=g*I\)
    \(\therefore f*\mu=g*I*\mu=g*ε=g\)

  • 如果有 \(f(n)=\sum\limits_{n|d}g(d)\),那么有

    \[g(n)=\sum_{n|d}\mu(\frac{d}{n})f(d) \]

    证明:考虑逆推:
    \(\quad \sum\limits_{n|d}{\mu(\frac{d}{n})f(d)}\)
    \(=\sum\limits_{k=1}{\mu(k)f(kn)}\)
    \(= \sum\limits_{k=1}{\mu(k)\sum\limits_{kn|d}{g(d)}}\)
    \(=\sum\limits_{n|d}{g(d)\sum\limits_{k|\frac{d}{n}}{\mu(k)}}\)
    \(= \sum\limits_{n|d}{g(d)\epsilon(\frac{d}{n})}\)
    \(=g(n)\)

整除差分

一个黑科技

CF915G Coprime Arrays 为例

快进到式子:

\[ans(k)=\sum_{d=1}^k\mu(d)\left\lfloor\frac{k}{d}\right\rfloor^n \]

如果对每个 \(k\) 分别使用整除分块,复杂度 \(O(n\sqrt{n})\),无法通过

注意到 \(\left\lfloor k/d\right\rfloor\ne \left\lfloor (k-1)/d\right\rfloor\Leftrightarrow d\mid k\),且此时 \(\left\lfloor k/d\right\rfloor=\left\lfloor (k-1)/d\right\rfloor+1\)

对答案差分,有:

\[\begin{aligned}ans(k)-ans(k-1)&=\sum_{d=1}^k\mu(d)\left\lfloor\frac{k}{d}\right\rfloor^n-\sum_{d=1}^{k-1}\mu(d)\left\lfloor\frac{k-1}{d}\right\rfloor^n \\&=\sum_{d=1}^k\mu(d)\left(\left\lfloor\frac{k}{d}\right\rfloor^n-\left\lfloor\frac{k-1}{d}\right\rfloor^n\right)\\&=\sum_{d\mid k}{\mu(d)\left[\left(\frac{k}{d}\right)^n-\left(\frac{k}{d}-1\right)^n\right]} \end{aligned} \]

线性筛出 \(id_k\) 后,记 \(h(n)=n^k-(n-1)^k\),则 \(\Delta ans=h*\mu\),时间复杂度 \(O(n\log n)\)

四、杜教筛

假设我们先现在希望求出函数 \(f\)\(n\) 处的前缀和 \(s(n)=\sum\limits_{i=1}^nf(i)\),我们构造另一个数论函数 \(g\),设 \(h=f*g\),则

\[\begin{aligned}&\sum\limits_{i=1}^nh(i)\\=&\sum\limits_{ij\leq n}f(i)g(j)\\=&\sum\limits_{d=1}^ng(d)\sum\limits_{i=1}^{\lfloor\frac{n}{d}\rfloor}f(i)\\=&\sum\limits_{d=1}^ng(d)s\left(\left\lfloor\dfrac{n}{d}\right\rfloor\right) \end{aligned} \]

\(g,h\) 的前缀和可快速求出,我们就得到了 \(s(n)\) 关于其所有整除值处取值的递推式,即

\[g(1)s(n)=\sum\limits_{i=1}^nh(i)-\sum\limits_{d=2}^ng(d)s\left(\left\lfloor\dfrac{n}{d}\right\rfloor\right) \]

一般 \(f,g\) 均为积性函数,因此 \(g(1)=1\),公式又写为

\[s(n)=\sum\limits_{i=1}^nh(i)-\sum\limits_{d=2}^ng(d)s\left(\left\lfloor\dfrac{n}{d}\right\rfloor\right) \]

一般预处理 \(f\) 及其前缀和到 \(n^{\frac{2}{3}}\) 处,复杂度优化为 \(\mathcal{O}(n^{\frac{2}{3}})\)

P4213 【模板】杜教筛

题意:求 \(\sum \varphi(i)\)\(\sum \mu(i)\)\(n\leq 2^{31}\)

对于 \(f=\varphi\),构造 \(g=1\)\(f*g=id\)

对于 \(f=\mu\),构造 \(g=1\)\(f*g=\epsilon\)

P3768 简单的数学题

发现自己欧拉反演和莫比乌斯反演都学的依托……

\(\gcd(i,j)\) 作欧拉反演得 \(\gcd(i,j)=\sum\limits_{d\mid \gcd(i,j)}{\varphi(d)}\)

所以原式

\[=\sum\limits_{d=1}^n{\varphi(d)\times d^2}\sum\limits_{i=1}^{\lfloor n/d \rfloor}\sum\limits_{j=1}^{\lfloor n/d\rfloor}{ij} \]

后面那坨可以直接计算,对它整除分块,只需快速求出前面那坨的前缀和。

\(f=\varphi\times id^2\),构造 \(g=id^2\),那 \(f*g=id^3\),可以使用杜教筛。时间复杂度大约 \(\mathcal{O}(n^{\frac{2}{3}})\)

P6055 [RC-02] GCD

题意:求\(\sum\limits_{i=1}^n\sum\limits_{j=1}^n\sum\limits_{p=1}^{\left\lfloor{\frac{n}{j}}\right\rfloor}\sum\limits_{q=1}^{\left\lfloor{\frac{n}{j}}\right\rfloor}[\gcd(i,j)=1][\gcd(p,q)=1]\)

\(n\leq 2\times 10^9\)

有点厉害的题目。

推式子推不出来。于是观察一下原式。

于是惊人的发现 \(j\) 就是在枚举 \(\gcd(p,q)\)

于是化为

\[\begin{aligned}&\sum\limits_{i=1}^n\sum\limits_{p=1}^n\sum\limits_{q=1}^n[\gcd(i,p,q)=1]\\=&\sum\limits_{d=1}^n\mu(d)\left(\left\lfloor\dfrac{n}{d}\right\rfloor\right)^3\end{aligned} \]

杜教筛即可。

五、贝尔级数

  • 定义:对于积性函数 \(f\),定义其在质数 \(p\) 意义下的贝尔级数为

    \[\mathcal{F}_p(x)=\sum\limits_{i=0}^{+\infty}f(p^i)x^i \]

  • 定理:两个数论函数相狄利克雷卷积,其贝尔级数相乘。

较复杂的贝尔级数

  • \(id_k\rightarrow\dfrac{1}{1-p^kx}\)

  • \(\mu^2\rightarrow 1+x\)

  • \(d\rightarrow \dfrac{1}{(1-x)^2}\)(相当于 \(d=I*I\)

  • \(\sigma_k\rightarrow \dfrac{1}{(1-x)(1-p^kx)}\)(相当于 \(\sigma_k=I*id_k\)

  • \(\varphi\rightarrow \dfrac{1-x}{1-px}\)

posted @ 2024-01-30 08:57  xishanmeigao  阅读(51)  评论(0)    收藏  举报