[Math]同余子列定理:数列子列收敛定理的推论
在数列极限当中,数列的子列是一个核心概念。我们常常通过考察某些特殊子列的收敛性来判断原数列的整体行为。其中,如果按模 m 的余数将下标划分为若干同余类,进而得到一组“同余子列”,是一种非常实用且具有广泛应用的技巧性定理。笔者将从子列收敛的基本定理出发,系统的介绍这一方法,并给出其在数学证明。
1. 子列收敛定理
我们首先需要回顾一个最基本事实,它是整个同余子列方法的理论根基。
定理 1(子列收敛定理)
数列 \lbrace a_n \rbrace 收敛于 A 的充分必要条件是:它的任意子列 \lbrace a_{n_k} \rbrace 都收敛于 A。
证明
(必要性)若 a_n \to A,则对任意 \varepsilon > 0,存在正整数 N,使得当 n > N 时,|a_n – A| < \varepsilon。由于子列下标 n_k \to \infty,故存在正整数 K,当 k > K 时,n_k > N,于是 |a_{n_k} – A| < \varepsilon。因此子列收敛于 A。
(充分性)若任意子列都收敛于 A,特别地,原数列本身也是自己的一个子列(取 n_k = k),故原数列收敛于 A。
该定理告诉我们,数列的整体收敛性完全由它的所有子列决定。但“任意子列”有无穷多个,直接验证并不现实。我们自然希望找到一些有限个特殊的子列,如果它们都收敛且极限相同,就能保证原数列收敛。同余子列正是这样一组特殊的、有限个的子列。
2. 同余子列的定义与划分
假设存在一个数列 \lbrace a_n \rbrace,固定一个正整数 m,我们可以把自然数下标全体 \mathbb{N}(或 \mathbb{N}^*)按照除以 m 所得的余数分成 m 个互不相交的集合:
\lbrace mn \rbrace,\ \lbrace mn+1 \rbrace,\ \lbrace mn+2 \rbrace,\ \dots,\ \lbrace mn+m-1 \rbrace,
其中 n 遍历所有非负整数(或正整数)。这些集合称为“模 m 的同余类”。
对应地,原数列 \lbrace a_n \rbrace 就产生了 m 个子列:
a_{mn},\quad a_{mn+1},\quad a_{mn+2},\quad \dots,\quad a_{mn+m-1}.
例如:
-
当 m=2 时,得到两个子列:
a_{2n} \quad (\text{偶数项}),\qquad a_{2n+1} \quad (\text{奇数项}).
这就是我们熟悉的“奇偶子列”。
-
当 m=3 时,得到三个子列:
a_{3n},\quad a_{3n+1},\quad a_{3n+2}.
-
当 m=4 时,得到四个子列:
a_{4n},\quad a_{4n+1},\quad a_{4n+2},\quad a_{4n+3}.
以此类推。

这种划分的本质是将整个数列按照下标的周期性模式“切分”成 m 条互不相交的子序列。由于自然数下标被完全覆盖且无重叠,因此这 m 个子列包含了原数列的所有项。
3. 同余子列判定定理及其证明
我们基于上述基础定理和同余子列的划分,我们可以得到如下判定数列收敛的实用定理。
推论定理 (同余子列判定定理)
设 m 为正整数。若数列 \lbrace a_n \rbrace 的 m 个同余子列
a_{mn},\ a_{mn+1},\ \dots,\ a_{mn+m-1}
都收敛于同一极限 A,则原数列 \lbrace a_n \rbrace 也收敛于 A。
证明
任给 \varepsilon > 0。对每个余数 r \in \lbrace 0,1,\dots,m-1 \rbrace,由于子列 a_{mn+r} \to A,存在 N_r,使得当 n > N_r 时,
|a_{mn+r} – A| < \varepsilon.
因为只有有限多个 r,我们可以取
N = \max_{0 \le r \le m-1} \lbrace mN_r + r \rbrace.
现在设 k > N。将 k 写成 k = mn + r,其中 r 是 k 除以 m 的余数(0 \le r \le m-1),则
mn + r = k > N \ge mN_r + r,
所以 mn > mN_r,即 n > N_r。由 N_r 的定义可知
|a_k – A| = |a_{mn+r} – A| < \varepsilon.
于是对任意 \varepsilon > 0,存在上述 N,当 k > N 时恒有 |a_k – A| < \varepsilon,故原数列收敛于 A。\square
注:该定理的逆命题显然成立,因为若原数列收敛于 A,则它的任意子列(包括所有同余子列)都收敛于 A。因此,我们可以将定理 2 加强为充要条件:数列收敛于 A 当且仅当对于某个正整数 m,它的 m 个同余子列都收敛于 A。(当然,这里“某个正整数 m”不可任意选择,但通常选择便于分析的 m 即可。)
4. 典型应用举例
同余子列在数列极限的计算和证明中有着广泛的应用,我们下面通过几个典型场景来说明。
4.1 判断数列是否收敛
例 1 判断数列 a_n = (-1)^n 的敛散性。
解 取 m=2,考虑奇偶子列:
a_{2n} = (-1)^{2n} = 1 \to 1,
a_{2n+1} = (-1)^{2n+1} = -1 \to -1.
两个子列的极限分别为 1 和 -1,不相等。根据定理 2 的逆否命题,原数列不可能收敛。事实上,该数列发散。

4.2 证明递推数列收敛
许多递推数列的收敛性可以通过分析其奇偶子列来简化。
例 2 设数列 \lbrace a_n \rbrace 定义为
a_1 = 1,\quad a_2 = 2,\quad a_{n+2} = \frac{a_n + 1}{2} \quad (n \ge 1).
证明 \lbrace a_n \rbrace 收敛并求其极限。
解 注意到递推关系只涉及下标相隔 2 的项,因此奇偶项互不干扰。我们分别考虑奇数子列和偶数子列。
令 b_n = a_{2n-1}(奇数项),c_n = a_{2n}(偶数项)。则
b_{n+1} = a_{2n+1} = \frac{a_{2n-1} + 1}{2} = \frac{b_n + 1}{2},
c_{n+1} = a_{2n+2} = \frac{a_{2n} + 1}{2} = \frac{c_n + 1}{2}.
这两个子列满足相同的一阶线性递推。以 b_n 为例,我们改写为
b_{n+1} – 1 = \frac{b_n – 1}{2}.
于是数列 \lbrace b_n – 1 \rbrace 是公比为 \frac12 的等比数列,且 b_1 – 1 = a_1 – 1 = 0,所以 b_n – 1 = 0,即 b_n \equiv 1。同理,对 c_n:
c_{n+1} – 1 = \frac{c_n – 1}{2},\quad c_1 – 1 = a_2 – 1 = 1,
所以 c_n – 1 = \left(\frac12\right)^{n-1} \to 0,故 c_n \to 1。
于是奇数子列 \lbrace a_{2n-1} \rbrace 和偶数子列 \lbrace a_{2n} \rbrace 都收敛于 1。由同余子列判定定理(m=2),原数列 \lbrace a_n \rbrace 收敛于 1。
4.3 处理周期性干扰的数列
当数列的通项中含有周期性函数时,按周期长度划分子列往往能消除周期项的影响。
例 3 讨论数列
a_n = \sin\frac{n\pi}{2} + \frac{1}{n}
的敛散性。
解 三角函数 \sin\frac{n\pi}{2} 的周期为 4,因此我们取 m=4,考察四个同余子列。
-
当 n=4k 时,\sin(2k\pi)=0,所以
a_{4k} = \frac{1}{4k} \to 0.
-
当 n=4k+1 时,\sin(2k\pi + \pi/2)=1,所以
a_{4k+1} = 1 + \frac{1}{4k+1} \to 1.
-
当 n=4k+2 时,\sin(2k\pi + \pi)=0,所以
a_{4k+2} = \frac{1}{4k+2} \to 0.
-
当 n=4k+3 时,\sin(2k\pi + 3\pi/2)=-1,所以
a_{4k+3} = -1 + \frac{1}{4k+3} \to -1.
四个子列分别收敛于 0, 1, 0, -1,极限不全相同。因此原数列发散。
4.4 证明极限不存在
上面的例子已经展示了如何通过找到两个极限不同的同余子列来证明原数列发散。一般地,只要找到某个 m 的两个不同余类对应的子列极限不同,或者即便所有同余子列都收敛但极限不全相等,原数列就发散。这正是定理 2 的直接推论。
5. 在计算机算法的应用
同余子列的思想不仅在纯数学中有效,笔者最近也在学习研究CUDA并行计算内容,由此想到,同余子列在并行计算与任务划分中也有极高的应用价值。
在大规模数值计算中,经常需要判断一个迭代序列是否收敛。例如,求解线性方程组的迭代法(如 Jacobi、Gauss-Seidel 等)产生的向量序列 \lbrace x^{(k)} \rbrace。为了加速判定收敛性,我们可以将迭代指标 k 按模 m 划分成 m 个子序列,分配给不同的处理器或线程同时检查。如果所有子序列都表现出收敛趋势且极限相同,则可以提前终止迭代。这种方法在多线程开发和GPU 计算中尤为常见,因为对序列的访问具有规律性和可并行性。
6. 总结
数列的同余子列是数列极限理论中一种简洁而强大的工具。它基于以下核心思想:
- 自然数下标可以被完全划分为有限个模 m 同余类;
- 如果每个同余类对应的子列都收敛且极限相同,则原数列收敛;
- 这个方法将整体收敛性问题转化为有限个子列的研究,简化了分析。
在数学中,它被广泛用于判定数列敛散性、处理递推数列以及消除周期性干扰。在计算机科学中,同余划分的思想与并行计算、算法优化紧密相关。后续笔者也会展示在CUDA并行计算中的应用。


