反演学习笔记
通用反演知识
在学习之前,先要搞明白什么是反演。
笼统的讲,反演是一对双向的关系,将两个数列或函数对应起来。
举个例子,定义数列 \(B\) 是 \(A\) 的前缀和。那么显然,\(B\) 的差分就是 \(A\)。那么前缀和和差分这一对对应关系就被称作反演关系。
我们借由前缀和和差分这一对反演关系来探索反演的一些性质。
首先由于前缀和和差分都只包含加法,所以如果把 \(A\) 写成一个矩阵,那么前缀和和差分都可以写成一个矩阵的形式来对 \(A\) 进行线性变换成为 \(B\)。我们记前缀和的矩阵为 \(S\),记差分的矩阵为 \(T\)。事实上这种矩阵叫作关系矩阵。
那么有 \(A * S = B\)。如果我们同时对两边乘上 \(S^{-1}\) 呢?则有 \(A = B * S^{-1}\)。我们又知道 \(B * T = A\)。那么就有 \(S^{-1}=T\)。所以我们导出了第一个定理:两个互为反演的关系矩阵互逆。
用上面的例子验证下这个定理试试呢:
对于 \(S\) 显然有 \(S[n,i]=[i \le n]\)。对于 \(T\),显然有\(T[n,i]=1\) 当且仅当 \(i=n\),\(T[n,i]=-1\) 当且仅当 \(i=n-1\)。
那么 \((S*T)[i,j]=\sum _{k=1}^{n} S[i,k]T[k,j]=[i==j]=I\),我们发现确实是这样。
那现在我们可以用矩阵相关的东西来分析反演了。比如通过一定的线性变换使得 \(S\) 和 \(T\) 依旧互逆,那么他们也一定互为反演关系。
二项式反演
反演中最为简单的一种。
最初始的式子如下
\[F(n)=\sum _{i=0}^{n} (-1)^i \binom{n}{i} G(i)
\\
G(n)=\sum _{i=0}^{n} (-1)^i \binom{n}{i} F(i)
\]
证明的话,直接把两个矩阵乘起来看看是不是 \(I\) 就好了。定义两个矩阵分别为 \(A\),\(B\)。
\[(A*B)[i,j]=\sum _{k=j}^{i} A[i,k]B[k,j]
\\
=\sum _{k=j}^i (-1)^k \binom{i}{k} (-1)^j \binom{k}{j}
\\
=(-1)^j \sum _{k=j} ^i (-1)^k \binom {i}{j} \binom{i-j}{k-j}
\\
=(-1)^j \binom {i}{j} \sum _{k=j} ^i (-1)^k \binom{i-j}{k-j}
\]
发现后面的一坨即为杨辉三角奇数位与偶数位之差。在 \(i \neq j\) 的时候,为 \(0\)。当 \(i=j\) 时为 \(1\)。即为 \(I\),得证。
现在我们通过初始式子来变形得到其他的式子。
首先先考虑把 \(-1\) 的位置进行一定的移动。
\[F(n)=\sum _{i=0}^{n} (-1)^i \binom{n}{i} G(i)
\\
(-1)^{-n} F(n)=\sum _{i=0}^{n} (-1)^{n-i} \binom{n}{i} G(i)
\\
H(n)=(-1)^ n F(n)=\sum _{i=0}^{n} (-1)^{n-i} \binom{n}{i} G(i)
\]
则有
\[G(i)=\sum _{i=0}^n \binom{n}{i} H(i)
\\
H(n)=\sum _{i=0}^{n} (-1)^{n-i} \binom{n}{i} G(i)
\]
我们就得到了更为实用的推论。事实上大部分时候二项式反演是用来将恰好转化为钦定来解题的。
子集反演
感觉就是把二项式反演转化到了集合上而已……
先给出式子
\[F(S)=\sum_{T \sube S} f(T)
\\
f(S)= \sum _{T \sube S} (-1)^{|S|-|T|} F(T)
\]
考虑证明这个式子,从第二个式子开始往回推。
\[f(S)= \sum _{T \sube S} (-1)^{|S|-|T|} F(T)
\\
= \sum _{T \sube S} (-1)^{|S|-|T|} \sum _{P \sube T} f(P)
\\
=\sum _{P \sube S} f(P) \sum _{P \sube T \sube S} (-1)^{|S|-|T|}
\]
观察一下后面那一坨,用之前证明二项式反演的方法,可以发现和即为组合数奇数位的数和和偶数位的数的差。所以当且仅当 \(P=S\) 时,值为 \(1\)。得证。
当然,除了有子集版本,当然还有超集版本。但本质上和子集完全相同,甚至式子十分得有九分相似,只需要把子集符号改成超集符号。
同理,类似于二项式反演。很多题也是使用子集反演将选择子集恰好 \(S\) 的问题转化为钦定选择子集 \(S\) 的问题并加以解决。
Min-Max 容斥
还是先给出初始的式子
\[\max(S)=\sum_{T \sube S} (-1)^{|T|-1} \min(T)
\\
\min(S)=\sum_{T \sube S} (-1)^{|T|-1} \max(T)
\]
然而事实上这个式子一般没啥用,我们更在意类似于第 \(k\) 大的问题。
现在给出第 \(k\) 大或第 \(k\) 小的反演式子。定义 \(\max(S,k)\) 表示集合 \(S\) 中第 \(k\) 大的数。同理可得 \(min(S,k)\) 的定义。
\[\max(S,k)=\sum _{T \sube S,k \le |T|} \min(T) (-1)^{|T|-k} \binom{|T|-1}{k-1}
\\
\min(S,k)=\sum _{T \sube S,k \le |T|} \max(T) (-1)^{|T|-k} \binom{|T|-1}{k-1}
\]
求第 \(k\) 大的反演严格强于求最大值的反演且第 \(k\) 大和第 \(k\) 小没有本质区别,故我们只证明第 \(k\) 大的反演式的正确性。
我们大胆猜测转移系数只与集合的大小有关,那么我们考虑构造转移系数 \(f(x)\) 使得 \(\max(S,k)=\sum _{T \sube S} f(|T|) \min(T)\)。
设某个元素 \(x\) 在全集 \(S\) 中为第 \(p\) 大。当且仅当 \(T\) 只包含它和其他 \(p-1\) 个比他大的数时 \(\min(T)=x\)。所以这个数 \(x\) 在右边能做的贡献是 \(\sum _{i=1}^{p-1} \binom{p-1}{i} f(i+1)\)。需要 \(-1\) 是因为我们钦定了必须选择 \(p\)。
那么我们希望 \([p=k]=\sum _{i=1}^{p-1} \binom{p-1}{i} f(i+1)\)。为了后面推式子方便,我们对它稍作变形成为 \([p=k-1]=\sum _{i=1}^{p} \binom{p}{i} f(i+1)\)。
用上面二项式反演的式子,可以得到
\[f(p+1)=\sum _{i=1}^{p} (-1)^{p-i} \binom{p}{i} [i=k-1]
\\
= (-1)^{p-k+1} \binom{p}{k-1}
\]
则 \(f(p)=(-1)^{p-k}\binom{p-1}{k-1}\)。得证。虽然我也不知道为什么,但是所有的 Min-Max 容斥在期望意义下都是成立的。在某些计数第 \(k\) 大的数的期望题中会有妙用。
斯特林反演
首先先介绍下斯特林数吧。
第一类斯特林数
第一类斯特林数 \(s(n,k)\) 表示将 \(n\) 个两两不同的元素,划分为 \(k\) 个互不区分的非空轮换的方案数。
则有递推式 \(s(n,k)=s(n-1,k-1)+(n-1)s(n-1,k)\)。边界是 \(s(n,0)=[n=0]\)。其中 \(s(n-1,k-1)\) 表示新起一个轮换,\((n-1)s(n-1,k)\) 表示插入到其中一个轮换中去。
根据第一类斯特林数的定义,有这个恒等式
\[\sum _{i=1}^n s(n,i)=n!
\]
直接套定义即可证明。
第一类斯特林数和上升幂以及下降幂都有着莫大的联系
\[x^{\overline{n}}=\sum _{i=0}^n s(n,i) x^i
\\
x^{\underline{n}}=\sum _{i=0}^n s(n,i) (-1)^{n-i} x^i
\]
考虑使用数学归纳法证明第一个式子。已知对于所有 \(i\le n\) 已经证明 \(x^{\overline{i}}\) 成立。
\[x^{\overline{n+1}}=(x+n)x^{\overline{n}}=(x+n)\sum_{i=0}^n s(n,i) x^i
\\
=x\sum_{i=0}^n s(n,i) x^i + n \sum_{i=0}^n s(n,i) x^i
\\
=\sum _{i=0}^n s(n,i) x^{i+1} + n \sum_{i=0}^n s(n,i) x^i
\\
=\sum _{i=1}^n s(n,i-1) x^i + n \sum_{i=0}^n s(n,i) x^i
\\
=\sum _{i=1}^n (s(n,i-1)+n \times s(n,i))x^i
\\
=\sum _{i=1}^n s(n+1,i) x^i
\]
现在我们已经证明了第一个式子,第二个式子可以用数学归纳法以几乎相同的化简方法证明。
第二类斯特林数
第二类斯特林数 \(S(n,k)\) 表示将 \(n\) 个两两不同的元素,划分为 \(k\) 个互不区分的非空子集的方案数。
则有递推式 \(S(n,k)=S(n-1,k-1)+k S(n-1,k)\)。边界还是 \(S(n,0)=[n=0]\)。其中 \(S(n-1,k-1)\) 表示新起一个集合,\(k S(n-1,k)\) 表示插入到其中一个集合中去。
虽然第一类斯特林数没有确定的公式,但第二类斯特林数有通项公式为
\[S(n,m)=\sum _{i=0}^m \frac{(-1)^{m-i}i^n}{i!(m-i)!}
\]
证明略,读者自证不难。虽然看着很复杂,但其实就是下面幂与第二类斯特林数的关系反演一下就是这个式子。
同第一类斯特林数一样,第二类斯特林数与整数幂也有莫大的关系。
\[m^n=\sum _{i=0} ^m S(n,i) i! \binom{m}{i}= \sum _{i=0} ^ m S(n,i) m^{\underline{i}}
\]
证明也很简答,考虑 \(m^n\) 的组合意义:\(n\) 个有区别的小球放入 \(m\) 个有区别的盒子中,允许空盒。那么 \(i\) 为枚举丢进几个盒子,\(S(n,i)\) 就是第二类斯特林数的定义,\(i!\) 表示这些盒子有区分,\(\binom{m}{i}\) 表示从 \(m\) 个盒子中选 \(i\) 个。
斯特林反演
而斯特林反演形如以下式子
\[F(n)=\sum _{i=0}^n S(n,i) G(i)
\\
G(n)=\sum _{i=0}^n (-1)^{n-i} s(n,i) F(i)
\]
同二项式反演一样,我们可以稍稍挪动 \(-1\) 的位置,就有了下面的式子。
\[F(n)=\sum _{i=0}^n (-1)^{n-i} S(n,i) G(i)
\\
G(n)=\sum _{i=0}^n s(n,i) F(i)
\]
那既然我们能用 \(\le n\) 的部分反演,那么我们也能用 \(\geq n\) 的部分反演,式子如下。
\[F(n)=\sum_{i=n} S(i,n) G(i)
\\
G(n)=\sum_{i=n} (-1)^{i-n} s(i,n) F(i)
\]
当然我们可以把 \(-1\) 随意挪动咯。
\[F(n)=\sum_{i=n} (-1)^{i-n} S(i,n) G(i)
\\
G(n)=\sum_{i=n} s(i,n) F(i)
\]
用之前的所说的方法,只要我们分析了关系矩阵互逆,就能证明这两个式子。
即为我们想证明 \(\sum _{k=m}^n (-1)^{n-k} s(n,k)S(k,m)=[m=n]\) 和 \(\sum _{k=m}^n (-1)^{n-k} S(n,k)s(k,m)=[m=n]\)。
前面一个式子是为了证明 \(\le n\) 的反演成立,后面的式子是为了证明 \(\geq n\) 的反演成立。
先证明前面的式子
\[m^{\underline{n}}=\sum _{i=0}^n s(n,i) (-1)^{n-i} m^i
\\
=\sum _{i=0}^{n} s(n,i) (-1)^{n-i} \sum _{j=0}^i S(i,j) m^{\underline{j}}
\\
=\sum _{i=0}^n m^{\underline{i}} \sum _{j=i} ^n (-1)^{n-j} s(n,j) S(j,i)
\]
第二个用同样的方法,将整数幂代换为第二类斯特林数和下降幂的积的形式,再将下降幂代替为第一类斯特林数,就能证明。至此我们已经证明了 \(4\) 种斯特林反演的正确性。
顺便提一句,广义斯特林数定义了负整数意义下的第一类,第二类斯特林数。我们惊奇的发现有 \(S(n,m)=s(-m,-n)\) 以及 \(s(n,m)=S(-m,-n)\)。证明我不会,我太菜了。
莫比乌斯反演
狄利克雷卷积与积性函数
莫比乌斯反演一般用于数论函数,所以它与狄利克雷卷积有着莫大的关系。
首先定义一下数论函数,就我们所需要学习的知识来说,我们可以简单的认为,数论函数就是定义域为正整数域 \(\mathbb{Z^+}\) 上的函数。
我们定义狄利克雷卷积是对于两个数论函数的卷积,其结果仍是一个数论函数。写作 \(h=f*g\) 且有 \(h(n)=\sum_{xy=n}f(x)g(y)\)。不过一般我们不这样写,为方便化简,我们一般写作 \(h(n)=\sum_{d|n}f(d)g(n/d)\)。
现在我们定义了一种运算,自然要探讨其运算律。
首先狄利克雷卷积满足交换律,即 \(f*g=g*f\)。证明显然,不多赘述。
同时狄利克雷卷积满足结合律,即 \(a=(f*g)*h=f*(g*h)\)。证明就是考虑 \(a(n)=\sum_{xyz=n}f(x)g(y)h(z)\),这个与运算顺序无关,所以结合律成立。
当然,分配律也是成立的,即为 \((f+g)*h=f*h+g*h\)。证明同上,把结果等于什么写出来即可证明。
最为重要的,狄利克雷卷积还有一个奇怪的性质:\(f=g\) 的充要条件为 \(f*h=g*h\),其中 \(h\) 要满足 \(h(1) \neq 0\)。证明显然,还是直接暴拆狄利克雷卷积然后归纳法证明就好了。
现在我们讨论了狄利克雷卷积的运算性质,我们还需要讨论一些必要的简单的元。
单位元/元函数:通常记作 \(\epsilon\),当且仅当 \(n=1\) 时有 \(\epsilon(n)=1\),其余的值全是0。顾名思义,对于任意数论函数 \(f\) 都有 \(\epsilon * f=f\)。带入证明即可。
恒等函数:通常记作 \(I\)。对于任意 \(x \in \mathbb{Z^+}\) 都有 \(I(x)=1\)。
单位函数:通常记作 \(id\)。对于任意 \(x \in \mathbb{Z^+}\) 都有 \(id(x)=x\)。
既然我们找到了一些函数,自然我们要讨论函数的性质。我们引入一个新的性质 积性。
我们定义一个数论函数 \(F\) 是积性的,当且仅当对于任意 \(a,b\) 满足 \(\gcd(a,b)=1\) 都有 \(F(ab)=F(a)F(b)\)。
我们考虑一个比积性更加强的性质 完全积性。其定义为对于一个数论函数 \(F\),对于任意 \(a,b\) 都有 \(F(ab)=F(a)F(b)\),则我们称这个函数为完全积性函数。显然完全积性函数都是积性函数。
当然根据定义,不论是恒等函数,元函数还是常数函数,他们都是积性函数。现在我们来讨论一下积性函数的一些通用性质。
首先对于任意积性函数 \(F\) 都有 \(F(1)=1\) 或 \(F(1)=0\)。证明就是考虑带入 \(a=b=1\),则 \(F(1)=F(1)F(1)\)。然而如果 \(F(1)=0\) 且 \(F\) 是积性函数,那么 \(F\) 的每一项都为 \(0\),丧失了任何的讨论意义,故下面只要没有特殊说明,我们都讨论 \(F \neq 0\) 的积性函数。
其次,我们还可以得到对于一个积性函数 \(F\),有 \(F(x)=F(p_1^{c_1})F(p_2^{c_2})\dots F(p_k^{c_k})\)。其中 \(x=\prod p_i^{c_i}\) 且 \(p_i\) 都是质数。证明显然,根据定义就可以知道。
事实上有很多的常用数论函数都是积性函数,例如:元函数 \(\epsilon\),恒等函数 \(I\),单位函数 \(id\),欧拉函数 \(\varphi\),莫比乌斯函数 \(\mu\) 等等。
现在我们讨论了狄利克雷卷积和积性函数分别的性质,把它们结合起来呢?
定理:两个积性函数的狄利克雷卷积依旧是积性函数。
假设有两个积性函数 \(f,g\),定义 \(h=f*g\)。我们想证明的就是 \(h\) 同样是积性函数。对于任意 \(a,b\) 满足 \(\gcd(a,b)=1\) 都有
\[h(a)h(b)=\sum _{c|a} f(c)g(\frac{a}{c}) \sum _{d|b} f(d)g(\frac{b}{d})
\\
=\sum _{c|a} \sum _{d|b} f(cd)g(\frac{ab}{cd})
\\
=\sum _{e|ab} f(e)g(\frac{ab}{e})=h(ab)
\]
那么我们就说明了对于两个积性函数的积是积性函数。那如果一个 \(f(1)\neq 0\) 积性函数和一个普通数论函数的狄利克雷卷积是积性函数,能否说明这个数论函数也是积性函数呢?答案是肯定的,不过我们得先引入一下数论函数在狄利克雷卷积意义下的逆元。
对于一个函数 \(f\),如果存在 \(g\),满足 \(f*g=\epsilon\),则我们称 \(g\) 是 \(f\) 的逆元,一般写作 \(f^{-1}\)。
首先我们先讨论逆元的存在性,对于所有 \(f(1)\neq0\) 的数论函数 \(f\),都存在逆元 \(f^{-1}\)。由上面奇怪的性质可以得到逆元是唯一的。
现在我们来讨论如何计算逆元。和上面奇怪的性质的证明差不多,考虑已经计算出了 \(i < x\) 的所有 \(i\) 的 \(f^{-1}(i)\) 那么我们可以用已知的信息推出 \(f^{-1}(x)\) 的值。
我们已经知道了逆元的存在性,唯一性以及逆元的构造方法了。
定理:一个积性函数的逆元也是积性函数。证明如下。
考虑积性函数 \(f\),我们令他的逆元为 \(g\)。用数学归纳法证明。首先对于 \(nm=1\) 的情况是平凡的,显然成立。若 \(nm>1\) 且 \(\gcd(n,m)=1\),我们考虑已经证明 \(xy \[g(nm)=-\sum _{d|nm,d\neq 1} f(d) g(nm/d)=-\sum_{a|n,b|m,ab\neq 1} f(ab)g(\frac{nm}{ab}) \\ =-\sum_{a|n,b|m,ab\neq 1} f(a)f(b)g(\frac{n}{a})g(\frac{m}{b}) \\ =f(1)f(1)g(n)g(m)-\sum_{a|n}f(a)g(\frac{n}{a})\sum_{b|m}f(b)g(\frac{m}{b}) \\ =g(n)g(m)-\epsilon(n)-\epsilon(m)=g(n)g(m) \] 那么我们就用归纳法证明了 \(g\) 也就是 \(f^{-1}\) 是积性函数了。 回到原问题,我们假设有积性函数 \(f,g\) 满足\(f \neq 0\),以及一个数论函数 \(h\),有 \(f*h=g\)。我们需要证明 \(h\) 也是一个积性函数。我们把两边同时乘上 \(f^{-1}\),得到\(f*h*f^{-1}=g*f^{-1}\),通过交换律可以得到 \(h=g*f^{-1}\)。由于两积性函数的狄利克雷卷积依旧是积性的,所以 \(h\) 是积性函数。 现在我们已经对狄利克雷卷积以及积性函数有了一点点了解了,我们来讨论一些非常特殊的积性函数。 莫比乌斯函数 \(\mu\) 我们先考虑最基础的狄利克雷卷积,也就是 \(g=f*I\)。先考虑如果给定 \(f\),那我们可以 \(O(n\ln n)\) 的暴力计算 \(g\),当然也可以用高为前缀和做到 \(O(n \ln\ln n)\) 的复杂度。但这不重要,因为通过 \(f\) 求 \(g\) 是朴素的。那假如说我们是知道 \(g\) 求 \(f\) 呢?根据狄利克雷卷积的运算性质,我们知道 \(f=g*I^{-1}\)。事实上 \(\mu\) 就是这么来的,即 \(\mu * I=\epsilon\)。 首先我们定义以下 \(\mu\)。 \[\begin{cases} \mu(n)=1 & n=1 \\ \mu(n)=0 & \exist p,p^2|n \\ \mu(n)=(-1)^k & k 为 n 的质因子个数 \end{cases} \] 既然已经定义好了 \(\mu\),我们来探讨下它的性质。 首先根据 \(\mu\) 是怎么来的,我们有 \(\mu * I=\epsilon\),证明如下 我们令 \(n=\prod_{i=0}^k p_i^{c_i},n'=\prod p_i\)。 \[\sum _{d|n} \mu(d)=\sum_{d|n'} \mu(d) \\ =\sum_{i=0}^k \binom{k}{i} (-1)^i=(1-1)^k \] 上面的式子当且仅当 \(k=0\) 才有值。\(k=0\) 即 \(n=1\)。故 \(\mu *I=[n=1]=\epsilon\)。证毕。 现在我们已经知道了一个重要的结论 \(\mu * I=\epsilon\)。它可以带给我们两个较为简单的式子,第一个式子就是引入 \(\mu\) 时使用的式子。第二个式子就比较特殊了,它是倍数求和的反演式 \[F(n)=\sum_{n|d} f(d) \\ f(n)=\sum_{n|d} \mu(d/n) F(d) \] 当然我们可以对这个式子进行稍稍的变形,以方便我们的证明。 \[F(n)=\sum_k f(kn) \\ f(n)=\sum_k \mu(k) F(kn) \] 证明其实很简单,如下 \[f(n)=\sum_i \mu(i) F(in)=\sum_i \mu(i) \sum_j f(ijn) \\ =\sum_k f(kn) \sum_{i|k} \mu(i)=\sum_k f(kn) [k=1]=f(n) \] 然而事实上这两个反演式子都没有下面这个式子用处大 \[[\gcd(i,j)=1]=\sum _{d|\gcd(i,j)} \mu(d) \] 证明显然,直接将 \([\gcd(i,j)=1]\) 代换成 \(\epsilon(\gcd(i,j))\) 即可。 有关求 \(\mu\) 的部分,这里不多赘述。 大多数时候,题目中出现了 \(\gcd(i,j)\) 我们都能通过莫比乌斯反演将其转变为枚举 \(d=\gcd(i,j)\) 通过统计合法的 \(i,j\) 对数以达到解决原题的目的。 欧拉函数 \(\varphi\) 先给出欧拉函数 \(\varphi\) 的定义。\(\varphi(n)\) 即为小于等于 \(n\) 的数中与 \(n\) 互质的数的个数。首先先给出 \(\varphi\) 的通项公式。设 \(n=\prod p_i^{c_i}\) 则有 \(\varphi(n)=n\prod(1-\frac{1}{p})\)。证明很简单,不会的可以看蓝书。 上面讲积性函数的时候就提到了,\(\varphi\) 是一个积性函数。证明很简单,考虑任意互质的数 \(a,b\),由于他们互质,所以他们分解质因数后当然没有任何共同质数,自然 \(\varphi(ab)=\varphi(a)\varphi(b)\)。 暴力求一个数的 \(\varphi(n)\) 是 \(O(\sqrt{n})\) 的。如果我们需要线性的求出对于 \(1\le x\le n\) 的所有 \(\varphi(x)\),那就需要使用线性筛了,这里不多赘述。 定理:\(\sum_{i=1}^n\sum_{j=1}^n[\gcd(i,j)=1]=2\sum_{i=1}^n\varphi(i)-1\)。证明如下 考虑把左边的式子砍一半 \(\sum_{i=1}^n\sum_{j=1}^i[\gcd(i,j)=1]\),这个式子的值即为 \(\sum_{i=1}^n \varphi(i)\)。由于直接 \(\times 2\) 会使得 \(i=1,j=1\) 的情况算两遍,故需要 \(-1\)。 事实上有些用莫比乌斯反演做的题,能使用欧拉函数的性质达到算法复杂度更低的目的。现在我们从狄利克雷卷积的视角来考察欧拉函数的性质。 首先有一个和 \(\varphi\) 的与 \(\mu * I = \epsilon\) 同等重要的式子 \(\varphi * I =id\)。换句话说就是 \(n=\sum_{d|n}\varphi(d)\)。由于 \(id\) 是个积性函数,所以我们只需要证明 \(n=p^c\),其中 \(p\) 为质数即可。 考虑 \(n=p^c\),则 \(n=\sum_{i=0}^c \varphi(p^i)\)。由于 \(\varphi(p^i)=(p-1)p^{i-1}\)。所以其实后面的求和是一个等比数列求和,其结果就是 \(p^c\)。故我们证明了 \(\varphi * I =id\)。 事实上由于 \(I^{-1}=\mu\),这个式子还可以进行进一步变形,变为 \(\varphi = id * \mu\)。这个式子就即为的有用了,因为同上面所说,大部分有 \(\gcd(i,j)\) 的题我们通常会选择枚举 \(d=\gcd(i,j)\) 然后统计 \(i,j\) 对数的方法来解决,这个时候很可能就会出现形如 \(id * \mu\) 的式子,我们就可以将其转化为 \(\varphi\)。 这样说还是有点太抽象了,不如来举个例子。现在我们要计算 \(\sum_{i=1}^n\sum_{j=1}^m\gcd(i,j)\)。我们事先规定,下列的式子中所有除法都表示整除的结果。 用莫比乌斯反演,则有 \[\sum_{d=1}^n d\sum_{t=1}^{\frac{n}{d}} \mu(t) \frac{n}{dt} \frac{m}{dt} \\ =\sum_{d=1}^n d \sum_{d|p}^n \mu(\frac{p}{d}) \frac{n}{p} \frac{m}{p} \\ =\sum_{p=1}^n \frac{n}{p} \frac{m}{p} \sum_{d|p} d \times \mu(\frac{p}{d}) \\ =\sum_{p=1}^n \frac{n}{p} \frac{m}{p} \varphi(p) \] 这个东西就可以直接数论分块做了。我们发现我们巧用 \(id * \mu=\varphi\) 把这道题做完了。 约数个数函数 还是先给出定义,除数函数 \(d(n)\) 表示 \(n\) 的约数个数。还是把通项公式给一下,设 \(n=\prod p_i^{c_i}\),则有 \(d(n)=\prod (c_i+1)\)。证明显然,乘法原理,每个质数 \(p_i\) 有 \(c_i+1\) 种不同选择,乘一起就是了。 我们仔细看一下狄利克雷卷积的式子,他是通过枚举因数来卷起来的,这不正好和约束个数联系起来了嘛。所以我们有 \(d=I*I\)。证明显然,定义就是这样的啊。 约数的和函数 顾名思义,约数的和函数 \(\sigma(n)\) 表示 \(n\) 的所有约数的和。和上面完全一样,既然狄利克雷卷积枚举了约数,那约数和就是把 \(I\) 变为 \(id\) 而已。故 \(\sigma=I*id\)。 单位根反演 单位根反演的核心式子如下 \[[n|k]=\frac{1}{n}\sum_{i=0}^{n-1} \omega_n^{ik} \] 证明很简单,分类讨论。若 \(n|k\),则所有 \(\omega_n^{ik}\) 都为 \(1\),自然和为 \(n\),成立。若 \(n\nmid k\),则这是个等比数列求和,其结果为 \(\frac{\omega_n^{kn}-1}{n(\omega_n^k-1)}=0\)。故原式成立。