【学习笔记】欧拉函数&莫比乌斯函数(概念定理)
前置知识
\(a,b,c\) 是正整数,\(\left\lfloor\dfrac{a}{bc}\right\rfloor=\left\lfloor\dfrac{\left\lfloor\dfrac{a}{b}\right\rfloor}{c}\right\rfloor\)
证明:\(\dfrac{a}{b}=\left\lfloor\dfrac{a}{b}\right\rfloor+r(0\le r<1)\\\dfrac{a}{bc}=\dfrac{\left\lfloor\dfrac{a}{b}\right\rfloor+r}{c}\\\because 0\le r<1\\\therefore\left\lfloor\dfrac{a}{bc}\right\rfloor=\left\lfloor\dfrac{\left\lfloor\dfrac{a}{b}\right\rfloor+r}{c}\right\rfloor=\left\lfloor\dfrac{\left\lfloor\dfrac{a}{b}\right\rfloor}{c}\right\rfloor\)
整除分块
整除分块是推柿子时很重要、很常见的技巧。
计算 \(\sum\limits_{i=1}^n\left\lfloor\dfrac{n}{i}\right\rfloor,n\le10^{12}\)。
发现会出现相同的值,并且相同的值相邻。
如:\(\sum\limits_{i=1}^{18}\left\lfloor\dfrac{n}{i}\right\rfloor=18+9+6+4+\underline{3+3}+\underline{2+2+2}+\underline{1+...+1}\)
对于 \(i\),求出满足 \(\left\lfloor\dfrac{n}{i}\right\rfloor=\left\lfloor\dfrac{n}{j}\right\rfloor\) 的最大的 \(j\):
\(\left\lfloor\dfrac{n}{i}\right\rfloor\le\dfrac{n}{j}<\left\lfloor\dfrac{n}{i}\right\rfloor+1\Rightarrow j\le\dfrac{n}{\left\lfloor\dfrac{n}{i}\right\rfloor}\Rightarrow \max\{j\}=\left\lfloor\dfrac{n}{\left\lfloor\dfrac{n}{i}\right\rfloor}\right\rfloor\)
时间复杂度降到了 \(\left\lfloor\dfrac{n}{i}\right\rfloor\) 出现不同值的个数。
\(i\le\sqrt n\) 时显然只有 \(\sqrt n\) 种取值;
\(i>\sqrt n\) 时 \(\left\lfloor\dfrac{n}{i}\right\rfloor\le \sqrt n\), 也只有 \(\sqrt n\) 种取值。
时间复杂度 \(\mathcal{O}(\sqrt n)\)。
for(; q; --q) {
ans = 0;
n = read();
for(i = 1; i <= n; i = j + 1) {
j = n / (n / i);
ans += (j - i + 1) * (n / i);
}
printf("%lld\n", ans);
}
\(a\bmod b=a-b\left\lfloor\dfrac{a}{b}\right\rfloor\),拆出来套一个等差数列求和。
for(i = 1; i <= n; i = j + 1) {
j = k / i ? min(n, k / (k / i)) : n;//注意与 n 取 min
ans += (i + j) * (j - i + 1) * (k / i);
}
printf("%lld\n", n * k - (ans >> 1));
差不多的套路,留给大家思考。
数论函数
在数论上,算术函数(或称数论函数)指 定义域为正整数、陪域为复数的函数,每个算术函数都可视为复数的序列。
最重要的算术函数是积性及加性函数。算术函数的最重要操作为狄利克雷卷积,对于算术函数集,以它为乘法,一般函数加法为加法,可以得到一个阿贝尔环(不要管这是啥)。
—— from 百度百科
常见的数论函数:
- 单位函数 \(\epsilon(n)=[n=1]\)
- 常数函数 \(1(n)=1\)
- 恒等函数 \(id(n)=n\)
- 除数函数 \(\sigma_k(n)=\sum\limits_{d\mid n}d^k=\begin{cases}d(n)(\text{约数个数})&k=0\\\sigma(n)(\text{约数和})&k=1\end{cases}\)
- 欧拉函数 \(\varphi(n)\)(见后文)
- 莫比乌斯函数 \(\mu(n)\) (见后文)
积性函数
当任意正整数 \(a,b\) 互质时,都有 \(f(a)f(b)=f(ab)\),则 \(f(x)\) 为积性函数。“数论函数”中提到的函数都是积性函数。
性质:若 \(f,g\) 是积性函数,则 \(h(x)=f(x^p),f^p(x),f(x)g(x),\sum\limits_{d\mid n}f(d)g(\dfrac{n}{d})\) 均为积性函数。
证明:前几个自证不难,重点看最后一个。
当 \(x,y\) 互质时:
\(h(x)h(y)=\sum\limits_{d\mid x}f(d)g(\dfrac{x}{d})\sum\limits_{d\mid y}f(d)g(\dfrac{y}{d})\\=\sum\limits_{d_1\mid x}\sum\limits_{d_2\mid y}f(d_1)g(\dfrac{x}{d_1})f(d_2)g(\dfrac{y}{d_2})\\=\sum\limits_{d_1\mid x}\sum\limits_{d_2\mid y}f(d_1d_2)g(\dfrac{xy}{d_1d_2})\\=\sum\limits_{d\mid xy}f(d)g(\dfrac{xy}{d})\\=h(xy)\)
狄利克雷卷积
\(f,g\) 为数论函数
\((f*g)(n)=\sum\limits_{d\mid n}f(d)g(\dfrac{n}{d})\) 为它们的狄利克雷卷积。
交换律(因子成对出现): \(f*g=g*f\)
结合律:\((f*g)*h=f*(g*h)\)
单位元:\(\epsilon\),任何数论函数卷 \(\epsilon\) 都为其本身。
\(1*1=d\\id*1=\sigma\)
欧拉函数
\(\varphi(n)=\sum\limits_{i=1}^n[\gcd(n,i)=1]\)
大白话:\(1..n\) 中与 \(n\) 互质的数的个数。
性质
1.
设 \(n=\prod_{i=1}^kp_i^{c_i}\\\varphi(n)=n\prod_{i=1}^k(1-\dfrac{1}{p_i})\)
2.
\(\varphi*1=id\) 即 \(\sum\limits_{d\mid n}\varphi(d)=n\)
证明:设 \(n=\prod\limits_{i=1}^kp_i^{c_i}\),由于 \(\varphi*1\) 和 \(id\) 都是积性函数,所以只需证 \((\varphi*1)(p_i^{c_i})=id(p_i^{c_i})\) 即可。
令 \(m=p_i^{c_i}\\\sum\limits_{d\mid m}\varphi(d)=\sum\limits_{j=0}^{c_i}\varphi(p_i^j)=1+\sum\limits_{j=0}^{c_i}p_i^{j}-p_i^{j-1}=1+\sum\limits_{j=1}^{c_i}p_i^j-\sum\limits_{j=0}^{c_i-1}p_i^j=p_i^{c_i}\)
3. \(\varphi(p^c)=p^c(1-\frac{1}{p})=p^{c-1}(p-1)\)
线性筛
\(p\) 为质数
设 \(i=\prod_{j=1}^kp_j^{c_j}\)
若 \(p\nmid i\),\(\varphi(pi)=\varphi(p)\varphi(i)=(p-1)\varphi(i)\)
若 \(p\mid i\),说明 \(i\) 含有质因子 \(p\),\(\varphi(pi)=pi\prod_{j=1}^k(1-\dfrac{1}{p_j})=p\varphi(i)\)
欧拉定理
若 \(\gcd(a,m)=1\),则\(a^{\varphi(m)}\equiv 1(\bmod m)\)
证明:令 \(n =\varphi(m)\)。
设 \([1,m]\) 中与 \(m\) 互质的数分别是 \(R=\{b_1,b_2,\dots,b_n\}\)
易得 \(\prod\limits_{i=1}^nb_i\perp m\)。
令 \(S=\{ab_1\bmod m,ab_2\bmod m,\dots,ab_n\bmod m\}\)
易知 \(S\) 中元素全部小于 \(m\)。
\(\because a\perp m\\\therefore\forall i\in[1,n],ab_i\perp m\) 即 \(\gcd(ab_i,m)=1\\\therefore\gcd(ab_i\bmod m,m)=1\)
证 \(S\) 中无重复元素:
假设存在 \(i,j\) 使 \(b_i>b_j,ab_i\equiv ab_j(\bmod m)\\\therefore a(b_i-b_j)\equiv0(\bmod m)\\\therefore m\mid a(b_i-b_j)\\\because m\nmid b_i,m\nmid b_j\\\therefore m\nmid (b_i-b_j)\\\therefore m\mid a\)
与 \(a\perp m\) 矛盾,故假设不成立。
\(\therefore S=R\) (都是小于 \(m\) 且与 \(m\) 互质的所有正整数的集合)
\(\therefore \prod\limits_{i=1}^nb_i=\prod\limits_{i=1}^nab_i\bmod m\\\therefore \prod\limits_{i=1}^nab_i\bmod m\equiv a^{n}\prod\limits_{i=1}^nb_i\bmod m\equiv\prod\limits_{i=1}^nb_i(\bmod m)\\\therefore(a^n-1)\prod\limits_{i=1}^nb_i\equiv 0(\bmod m)\\\because\prod\limits_{i=1}^nb_i\perp m\\\therefore m\mid (a^n-1)\\\therefore a^n-1\equiv 0(\bmod m)\\\therefore a^{\varphi(m)}\equiv 1(\bmod m)\)
扩展欧拉定理
\(a,m\) 是正整数,在 \(\bmod m\) 意义下,
\(a^c\equiv\begin{cases}a^{c\bmod\varphi(m)}&\gcd(a,m)=1\\a^c&\gcd(a,m)\neq 1,c<\varphi(m)\\a^{c\bmod\varphi(m)+\varphi(m)}&\gcd(a,m)\neq 1,c\ge\varphi(m)\end{cases}\)
证明:
- 欧拉定理推论
设 \(q=c\bmod\varphi(m)\),则 \(c=p\varphi(m)+q(q<\varphi(m))\)
\(\because a^{\varphi(m)}\equiv 1(\bmod m)\\\therefore a^{\varphi(m)p}\equiv 1(\bmod m)\\\therefore a^{\varphi(m)p+q}\equiv a^q(\bmod m)\\\therefore a^c\equiv a^{c\bmod\varphi(m)}(\bmod m)\)
-
显然
- 引理一
若 \(x,y>1,x^ay^b=k\),则 \(a,b\le\varphi(k)\)。
\(k\) 为质数是貌似没有拆分方法,考虑 \(k=p^n~(n>1)\) 的情况。
\(\varphi(k)=p^{n-1}(p-1)\)
考虑最小化 \(x,y\) (\(x=y=p\)),可以最大化 \(a+b\)(\(a+b=n\))。所以有 \(a+b\le n\)。
当 \(p=2\) 时,\(\varphi(k)=2^{n-1}\),可以对 \(n\) 做数学归纳法证明 \(2^{n-1}\ge n\)。
当 \(p>2\) 时,若固定 \(n\) 的取值,我们已经证明 \(p=2\) 时,\(\varphi(k)=p^{n-1}(p-1)\ge n\)。\(p\) 增大,左边增大,右边不变,不等式仍成立。
所以 \(a+b\le n\le\varphi(k)\),\(a,b\le\varphi(k)\)。
若 \(k\) 为几个质数的幂的乘积,这个感性理解一下。
- 引理二
若 \(m=ta^k,a\perp t\)(显然只有一种分解方案),则 \(a^k\equiv a^{\varphi(m)+k}(\bmod m),k\le c\)。
证明:\(\because a\perp t\\\therefore a^k\perp t\\\therefore\varphi(m)=\varphi(t)\varphi(a^k)\\\because a^{\varphi(t)}\equiv 1(\bmod t)\\\therefore a^{\varphi(m)}\equiv a^{\varphi(t)\varphi(a^k)}\equiv 1(\bmod t)\\\therefore a^k\equiv a^{\varphi(m)+k}(\bmod m)\)
(最后一步,恒等号左右、模数同时 \(\times a^k\))
\(\because t^1a^k=m\\\therefore k\le\varphi(m)\\\therefore k\le c\)
切回正题。
\(a^c\equiv a^{c-k+k}\equiv a^{\varphi(m)+c-k+k}\equiv a^{\varphi(m)+c}(\bmod m)\)
由数学归纳法可得 \(x\varphi(m)+c>0\) 时, \(a^c\equiv a^{x\varphi(m)+c}(\bmod m)\)
若 \(\varphi(m)\mid c\),\(x\) 最大为 \(-\left\lfloor\dfrac{c}{\varphi(m)}\right\rfloor+1\)
否则 \(x=-\left\lfloor\dfrac{c}{\varphi(m)}\right\rfloor\)
\(\therefore a^c\equiv a^{c\bmod\varphi(m)+\varphi(m)}(\bmod m)\)
莫比乌斯函数
设 \(n=\prod\limits_{i=1}^{m}p_i^{c_i}\)
\(\mu(n)=\begin{cases}1&n=1\\(-1)^m&\prod\limits_{i=1}^{m}c_i=1(\text{即} c_1=c_2=\dots=c_m=1)\\0&\text{otherwise}\end{cases}\)
大白话:
\(\mu(n)=\begin{cases}1&n=1\\(-1)^m&n\text{含有次数大于 1 的质因子}\\0&\text{其他情况(n 不为 1 且不含次数大于 1 的质因子)}\end{cases}\)
性质
1.
\(\mu*1=\epsilon\) 即 \(\sum\limits_{d\mid n}\mu(d)=[n=1]\)
证明:
\(n=1\) 时显然成立。
\(n\neq 1\) 时,设 \(n=\prod_{j=1}^kp_j^{c_j}\)
不考虑 \(\mu(d)=0\) 的贡献。
剩下的因数包含的质因子不超过 \(1\) 次。
于是 \(\sum\limits_{d\mid n}\mu(d)=\sum\limits_{i=0}^k(-1)^iC_k^i\)
考虑二项式定理,令 \(x=-1,y=1\),\((x+y)^k=\sum\limits_{i=0}^k(-1)^iC_k^i=0\)
\(\therefore \sum\limits_{d\mid n}\mu(d)=0\)
2.
\(\mu*id=\varphi\) 即 \(\sum\limits_{d\mid n}\dfrac{n}{d}\mu(d)=\varphi(n)\)
证明:
\(\mu*id=\mu*\varphi*1=\varphi*\epsilon=\varphi\)
线性筛
\(p\) 为质数
若 \(p\nmid i\),\(\mu(pi)=\mu(p)\mu(i)=-\mu(i)\)
若 \(p\mid i\),说明 \(ip\) 中 \(p\) 次数大于等于 \(2\),\(\mu(pi)=0\)
莫比乌斯反演
若\(F(n)=\sum\limits_{d\mid n}f(d)\),则 \(f(n)=\sum\limits_{d\mid n}\mu(d)F(\dfrac{n}{d})\)
证明:
\(F=f*1\\F*\mu=f*1*\mu\\F*\mu=f*\epsilon\\f=F*\mu=\mu*F\\f(n)=\sum\limits_{d\mid n}\mu(d)F(\dfrac{n}{d})\)
部分参考: