数论函数与莫比乌斯反演
Posted hikigaya
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数论函数与莫比乌斯反演相关的知识,希望对你有一定的参考价值。
数论函数
取整函数
定义
对于实数 \(x\),记 \(?x?\) 为不超过 \(x\) 的最大整数。
\(\lfloor x \rfloor\) 也是满足如下关系的唯一整数:
\(\lfloor x \rfloor ≤x<\lfloor x \rfloor+1\)
对于正整数 \(n\),\(1\) 到 \(n\) 中 \(d\) 的倍数有 \(?\fracnd?\) 个
性质1
对于任意的 \(x\) 与正整数 \(a\),\(b\),我们均有:
\[ ??\fracxa?/b? = ?\fracxab? \]
性质2
\(?\fracnd?\) 可能的取值不超过 2√n 种。
证明
对于正整数 \(n\),考虑当 \(1≤d≤n\) 时,\(?\fracnd?\) 的不同的取值个数。
若 \(d≤\sqrt n\),则能得到的 \(?\fracnd?\) 只有不超过 \(\sqrt n\) 种。
若 \(d>\sqrt n\),则 \(?\fracnd?≤\fracnd<\sqrt n\),又因为 \(?\fracnd?\)是正整数,故此时
可能的取值也不超过 \(\sqrt n\) 种。
综上,\(?\fracnd?\) 可能的取值不超过 \(2\sqrt n\) 种。
调和数
\[ \beginalign &H_n=\sum_k=1^n\frac1k\&=\ln n+\gamma+o(1) \endalign \]
可以推出:
\[
\beginalign
\sum_d=1^n\lfloor \fracnd \rfloor=\Theta(n logn)
\endalign
\]
素数计数函数
定义&素数定理
令素数计数函数 \(\pi(n)\) 表示不超过 \(n\) 的素数个数。我们有如下的素数定理:
\[ \pi(n)\sim\fracn\ln n \]
推论:
\(n\) 附近的素数密度近似是 \(\frac1\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)\) 定义为:
\[
\beginalign
\epsilon(n)=[n=1]=\left\
\beginmatrix
&1,n=1;\\
&0,n\neq1.
\endmatrix\right.
\endalign
\]
除数函数
定义
除数函数 \(\sigma_k\) 用来表示 \(n\) 的因子的 \(k\) 次方之和:
\[ \beginalign \sigma_k(n)=\sum_d|nd^k \endalign \]
约数个数 \(\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-\frac1p_i)\]
其中 \(n = p_1^\alpha_1p_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(\fracnd , \fracid ) = 1\) 。而又 \(\fracid\) 是不超过 \(\fracnd\) 的整数,故这样的 \(i\) 有 \(φ(\fracnd)\) 个。
考虑所有 \(d | n\),我们也就考虑到了所有 \(1\) 到 \(n\) 之间的 \(n\) 个整数,因此有\[n=\sum_d|n\varphi(\fracnd)=\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)=
\beginaligned
&1 && n=1 \&0 && 有完全平方因子 \&(-1)^p && 是p个不同素因子积\\endaligned
\]
第一次看到这个时我很懵逼,感觉这个函数不那么自然,不知道为什么有这个函数……
但实际上,它是常函数 \(1\) 的逆,即 $\mu * 1=\epsilon $。
而具体推导可以看这里。(其实好像算是一种容斥?)
而这满足了进行莫比乌斯反演的需要。
积性函数的逆:
若 \(f*g=\epsilon\),则 \(f\) 与 \(g\) 互逆。
莫比乌斯反演
现有关系:
\[
\beginalign
F(n)=\sum_d|nf(d)
\endalign
\]
即:
\[
F=f*1
\]
如果我们易求 \(f\),那么就可以轻松求出 \(F\),反之,若 \(F\) 易求,我们如何求出 \(f\)?
\[
F*\mu=f*1*\mu=f*\epsilon=f
\]
倍数的莫比乌斯反演:
若:
\[
F(n)=\sum_n|df(d)
\]
则:
\[
f(n)=\sum_n|d\mu(d/n)F(d)
\]
又作:
若:
\[
F(n)=\sum_k=1^\inftyf(kn)
\]
则:
\[
f(n)=\sum_k=1^\infty\mu(k)f(kn)
\]
技巧:
\[
[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\) 的贡献来分块求答案。
主要思想:
使用“交换合式顺序”和“改变枚举变量”来化简。
数论分块
具体就不写了,简要记录证明思路,算了,也不写了。
题目及更多技巧等会写
以上是关于数论函数与莫比乌斯反演的主要内容,如果未能解决你的问题,请参考以下文章