浅析勒贝格积分的思想在数论函数求和中的应用

(标题党)利益声明:本文标题纯粹胡扯请读者忽略。

I. PreFace

我们来看这样一题(虽然跟本文看起来没什么关系):

给定序列 \(A\),请在 \(O(n)\) 时间内求出如下式子:

\[\sum_{l=1}^n\sum_{r=l}^{n}\min_{l\le j \le r} A_j \]

这个式子中最困难的理应是区间最小值这一项,倘若枚举 \(l,r\),这个式子再怎么都是 \(O(n^2)\) 的。但是我们可以枚举这个最小值,对于每个位置看一看它在哪些区间中是最小值,然后就可以快速统计了。

你会发现这东西就好像是一个黎曼不可积的函数,它可能勒贝格可积;我们枚举的这个最小值就是在给 \(y\) “分段”,而寻找它在哪些区间中作为最小值其实就是在寻找它的 勒贝格测度

事实上,我们要求的这个式子其实就是一个三维上的分段函数,\(i\)\(j\) 是自变量,\(\min\) 是函数值;尽管它黎曼不可积,但是它勒贝格可积。这就解释了为什么这么走行得通而直接枚举 \(i,j\) 行不通。(胡扯中)。

I. 正文

我们考虑把这个方法用到整除的偏序集上。来一个简单的例题:

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

让我们把它写成这样的形式(左边的函数值,右手边用条件的形式表示测度):

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

用一个常用方法:\(\gcd=k\) 的时候把 \(i\)\(j\) 除以 \(k\),得到如下式子:

\[f(n,m)=\sum_{d=1}^{\min(n,m)} d \sum_{i=1}^{\left \lfloor \frac{n}{d} \right \rfloor}\sum_{j=1}^{\left \lfloor \frac{m}{d} \right \rfloor} \varepsilon(\gcd(i,j))=\sum_{d=1}^{\min(n,m)} d \times g(\left \lfloor \frac{n}{d} \right \rfloor, \left \lfloor \frac{m}{d} \right \rfloor) \]

上面这个方法的意义在于,现在它可以用 \(1 * \mu = \varepsilon\) 了:

\[g(n,m)=\sum_{i=1}^n\sum_{i=1}^m\sum_{d|i, d|j} \mu(d) \]

于是我们又可以把它写成这样的形式:

\[g(n,m) = \sum_{d=1}^{\min(n,m)} \mu(d) \sum_{i=1}^n\sum_{j=1}^m = \sum_{d=1}^{\min(n,m)} \mu(d) \left \lfloor \frac{n}{d} \right \rfloor \times \left \lfloor \frac{m}{d} \right \rfloor \]

这个式子已经可以 \(O(n)\) 求了。

III. Tricks

我们罗列一些方法、技巧、常见结论:

  1. \(id = \varphi * 1\),例如上面那个 \(\gcd\) 的式子,我们一开始就不用直接把 \(\gcd\) 直接提出来,而是把它展开后提出来,这样可以省却很多测度中的条件:

\[f(n,m) = \sum_{i=1}^n\sum_{j=1}^m\sum_{d|i,d|j}\varphi(d)=\sum_{d=1}^{\min(n,m)}\varphi(d) \left \lfloor \frac{n}{d} \right \rfloor \times \left \lfloor \frac{m}{d} \right \rfloor \]

  1. \(\varepsilon = 1 * \mu\),这个式子可以解决很多测度中遇到的条件式,即 \([a = b] = [\frac{a}{b} = 1]\),这个的运用就很广泛了,所以不用举例。

  2. 给整除条件、\(\gcd\) 等的式子约分,比如下面这两个:

\[\sum_d\sum_{i=1}^n\sum_{j=1}^n[d|i,d|j]\times i \times j \times \gcd(i,j) = \sum_d d^3\sum_{i=1}^{\left \lfloor \frac{n}{d} \right \rfloor}\sum_{j=1}^{\left \lfloor \frac{n}{d} \right \rfloor}ij\gcd(i,j) \]

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

  1. 利用辗转相减的式子首尾相加,如下面两个式子:

\[\sum_{i=1}^n i [\gcd(i,n)=1] = \frac{n\varphi(n)}{2} \]

\[\sum_{i=1}^n \frac{i\cdot n}{\gcd(i,n)} = \frac{1}{2} \cdot \sum_{i=1}^{n-1} \frac{n^2}{\gcd(i,n)} +n \]

  1. $ d(i\cdot j)=\sum\limits_{x \mid i}\sum\limits_{y \mid j}[\gcd(x,y)=1]=\sum\limits_{p \mid i,p \mid j}\mu(p)d\left(\frac{i}{p}\right)d\left(\frac{j}{p}\right)$,应用看这题:「SDOI2015」约数个数和

  2. \(d = 1 * 1\)\(\sigma = 1 * id\),这个用于将含有这两个的式子展开来。

未完待续......

posted @ 2020-12-23 09:59  Linshey  阅读(682)  评论(0编辑  收藏  举报