数论函数与莫比乌斯反演

数论函数

取整函数

定义

对于实数 \(x\),记 \(⌊x⌋\) 为不超过 \(x\) 的最大整数。
\(\lfloor x \rfloor\) 也是满足如下关系的唯一整数:
\(\lfloor x \rfloor ≤x<\lfloor x \rfloor+1\)  

对于正整数 \(n\)\(1\)\(n\)\(d\) 的倍数有 \(⌊\frac{n}{d}⌋\)

性质1

对于任意的 \(x\) 与正整数 \(a\)\(b\),我们均有:      

\[⌊⌊\frac{x}{a}⌋/b⌋ = ⌊\frac{x}{ab}⌋ \]

性质2

\(⌊\frac{n}{d}⌋\) 可能的取值不超过 2√n 种。

证明

对于正整数 \(n\),考虑当 \(1≤d≤n\) 时,\(⌊\frac{n}{d}⌋\) 的不同的取值个数。
\(d≤\sqrt n\),则能得到的 \(⌊\frac{n}{d}⌋\) 只有不超过 \(\sqrt n\) 种。
\(d>\sqrt n\),则 \(⌊\frac{n}{d}⌋≤\frac{n}{d}<\sqrt n\),又因为 \(⌊\frac{n}{d}⌋\)是正整数,故此时
可能的取值也不超过 \(\sqrt n\) 种。
综上,\(⌊\frac{n}{d}⌋\) 可能的取值不超过 \(2\sqrt n\) 种。

调和数

\[\begin{align} &H_{n}=\sum_{k=1}^{n}\frac{1}{k}\\ &=\ln n+\gamma+o(1) \end{align} \]

可以推出:

\[\begin{align} \sum_{d=1}^{n}\lfloor \frac{n}{d} \rfloor=\Theta(n logn) \end{align} \]

素数计数函数

定义&素数定理

令素数计数函数 \(\pi(n)\) 表示不超过 \(n\) 的素数个数。我们有如下的素数定理:

\[\pi(n)\sim\frac{n}{\ln n} \]

推论:

\(n\) 附近的素数密度近似是 \(\frac{1}{\ln n}\)

\(n\) 个素数 \(p_{n}\sim n \ln n\)

积性函数

定义

\(f\) 是数论函数,若对任意互质的正整数 \(a, b\) ,都有 \(f(ab) = f(a)f(b)\) ,则称 $f $ 是积性函数。

若对任意的正整数 \(a, b\) ,都有 \(f(ab) = f(a)f(b)\) ,则称 $ f $ 是完全积性的。

单位函数

定义

单位函数 \(\epsilon (n)\) 定义为:

\[\begin{align} \epsilon(n)=[n=1]=\left\{ \begin{matrix} &1,n=1;\\ &0,n\neq1. \end{matrix}\right. \end{align} \]

除数函数

定义

除数函数 \(\sigma_{k}\) 用来表示 \(n\) 的因子的 \(k\) 次方之和:  

\[\begin{align} \sigma_{k}(n)=\sum_{d|n}d^{k} \end{align} \]

约数个数 \(\sigma_{0}(n)\) 常记为 \(d(n)\) ,约数和 \(\sigma_{1}(n)\) 常记为 \(\sigma(n)\)
除数函数都是积性函数。

\(Euler\) 函数

定义:

\(Euler\) 函数 \(φ(n)\) 表示不超过 \(n\) 且与 \(n\) 互质的正整数的个数。

\(n\) 的标准分解并结合容斥原理,我们可以得到 \(Euler\) 函数的表达式:$$\varphi(n)=n\cdot\prod_{i=1}^{s}(1-\frac{1}{p_{i}})$$

其中 \(n = p_{1}^{\alpha_1}p_{2}^{\alpha_2} · · · p_{s}^{\alpha_s}\)\(n\) 的标准分解。
由此易见 \(Euler\) 函数是积性函数。

性质1

对于任意 $ n\(,\)Euler$ 函数有如下性质:

$$n=\sum_{d|n}\varphi(d)$$

证明1

\(1\)\(n\) 中的所有整数按与 \(n\) 的最大公约数分类。

\(gcd(n, i) = d\),那么 \(gcd(\frac{n}{d} , \frac{i}{d} ) = 1\) 。而又 \(\frac{i}{d}\) 是不超过 \(\frac{n}{d}\) 的整数,故这样的 \(i\)\(φ(\frac{n}{d})\) 个。
考虑所有 \(d | n\),我们也就考虑到了所有 \(1\)\(n\) 之间的 \(n\) 个整数,因此有$$n=\sum_{d|n}\varphi(\frac{n}{d})=\sum_{d|n}\varphi(d)$$即:

\[Id=\varphi *1 \]

证明2

可以先证明 \(f(n)=\sum_{d|n}\varphi (d)\) 为积性函数,然后再证对于质数 \(p\),有

\[f(p^c)=\sum_{d|p^c}\varphi(d)=\varphi(1)+\varphi(p)+\varphi(p^2)+...+\varphi(p^{c-1})=p^c \]

可以通过定义与等比数列求和得出,然后结论易得

小技巧,研究一个积性函数,先研究其在质数的幂时的表现。

性质2

\(p|n\) ,则 \(\varphi(np)=\varphi(n)p\)

使用时有:

\(\varphi(p^k)=(p-1)p^{(k-1)}\)

代码中:

phi[t]=phi[i]*(i%p[j]?p[j]-1:p[j]);

\(Mobius\) 函数

莫比乌斯函数的定义:

\[\mu(n)= \begin{aligned} &1 && n=1 \\ &0 && 有完全平方因子 \\ &(-1)^p && 是p个不同素因子积\\ \end{aligned} \]

第一次看到这个时我很懵逼,感觉这个函数不那么自然,不知道为什么有这个函数……

但实际上,它是常函数 \(1\) 的逆,即 $\mu * 1=\epsilon $。

而具体推导可以看这里。(其实好像算是一种容斥?)

而这满足了进行莫比乌斯反演的需要。

积性函数的逆:

\(f*g=\epsilon\),则 \(f\)\(g\) 互逆。

莫比乌斯反演

现有关系:

\[\begin{align} F(n)=\sum_{d|n}f(d) \end{align} \]

即:

\[F=f*1 \]

如果我们易求 \(f\),那么就可以轻松求出 \(F\),反之,若 \(F\) 易求,我们如何求出 \(f\)

\[F*\mu=f*1*\mu=f*\epsilon=f \]

倍数的莫比乌斯反演:

若:

\[F(n)=\sum_{n|d}f(d) \]

则:

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

又作:

若:

\[F(n)=\sum_{k=1}^{\infty}f(kn) \]

则:

\[f(n)=\sum_{k=1}^{\infty}\mu(k)f(kn) \]

起初我对这式子不是很理解,觉得不是有 \(\infty\) 项吗,怎么算?

但实际上在我们的运用过程中 \(f(d)\) 通常都是有限项的,如\(f(d)=\sum_{i=1}^{n}\sum_{j=1}^{m}[gcd(i,j)=d]\),而这种形式好像也更常用

技巧:

\[[gcd(i,j)=1]=\sum_{d|gcd(i,j)}\mu(d) \]

证明:

\(\mu * 1=\epsilon\)

\(\sum_{d|n}\mu(d)=[n=1]\)

\(n\) 替换成 \(gcd(i,j)\) 就是上式了。

然后 \(d|gcd(x,y)\) 可以转化为 \(d|x,d|y\),然后可以枚举倍数来求,

然后经常可以枚举 \(d\) 来根据 \(i\)\(j\) 的贡献来分块求答案。

主要思想:

使用“交换合式顺序”和“改变枚举变量”来化简。

常见反演:

\(f(d)=\sum_{i=1}^{n}\sum_{j=1}^{m}[gcd(i,j)=d]\)

\[\begin{align} F(x)&=\sum_{x|d}f(d)\\ &=\sum_{x|d}\sum_{i=1}^{n}\sum_{j=1}^{m}[gcd(i,j)=d]\\ &=\sum_{x|d}\sum_{i=1}^{n}\sum_{j=1}^{m}[x|i,x|j]\\ &=\lfloor \frac{n}{x} \rfloor \lfloor \frac{m}{x} \rfloor \end{align} \]

\(F(x)\) 易求,那么就可以反演求 \(f(d)\) 了。(当然除以 \(d\) 在利用上面的 \(gcd\) 变换的技巧也可以得到)

当然,这类题有些也可以用 \(\varphi\) 来化简,利用 \(\varphi*1=id\) 的性质,将 \(gcd\) 代换成 \(n\) 就行了。

\(\varphi\)\(\mu\) 的关系:

\[\begin{align} &Id=\varphi *1\\ &Id*\mu =\varphi\\ &\varphi(n)=\sum_{d|n}\mu(d)\frac{n}{d}\\ &\frac{\varphi(n)}{n}=\sum_{d|n}\frac{\mu(d)}{d} \end{align} \]

关于 \(d(n)\) 的有力结论:

\[d(nm)=\sum_{i|n}\sum_{j|m}[gcd(i,j)==1] \]

证明:

\(nm=\prod p_i^{x_i}\)\(n=\prod p_i^{y_i}\),则 \(m=\prod p_i^{x_i-y_i}\)

\(i = p_1^{a_1}\cdot p_2^{a_2}\cdot p_3^{a_3}\cdots p_k^{a_k}\)\(j = p_1^{b_1}\cdot p_2^{b_2}\cdot p_3^{b_3}\cdots p_k^{b_k}\)

\(gcd(i,j)==1\),则若 \(a_i=0\),则 \(b_i\)\(x_i-y_i+1\) 种取值,若 \(b_i=0\),则 \(a_i\)\(y_i+1\) 种取值,\(a_i=b_i=0\) 的情况重复了,所以一共有 \(x_i+1\) 种取值。

故右式的值为 \(\prod x_i+1\)。而这与左式的形式一致。

orz Sengxian 学长(看了一圈就他的一眼看懂了。。)。

数论分块

具体就不写了,简要记录证明思路,算了,也不写了。

posted @ 2019-10-01 23:20  天才美少女雪乃  阅读(339)  评论(0编辑  收藏  举报