抽屉原理-EGZ定理
从抽屉原理到 EGZ 定理:三种证明层次的详细推导
本文档系统梳理了从最基础的抽屉原理,到柯西-达文波特(Cauchy-Davenport)定理证明 EGZ,再到 Chevalley-Warning(CW)定理证明 EGZ 的完整逻辑链。
预备知识:闵可夫斯基和(集合加法)
在进入第二层的柯西定理之前,必须先明确一个核心运算规则。
定义:设 \(A\) 和 \(B\) 是两个数集(在模 \(p\) 的剩余类集合 \(\mathbb{Z}_p\) 中),定义它们的闵可夫斯基和(Minkowski Sum)为:
即:从 \(A\) 里取一个数,从 \(B\) 里取一个数,两两配对相加,把所有可能得到的结果(去重后)组成一个新集合。
注意:这里的 \(A+B\) 绝对不是集合的“并集”(\(A \cup B\)),而是“运算结果集”。例如在普通整数中,若 \(A=\{1,2\}, B=\{3,4\}\),则 \(A+B=\{4,5,6\}\),而不是 \(\{1,2,3,4\}\)。
第一层:基础抽屉原理(前缀和模型)
这是最原始的结论,也是理解后续高级定理的起点。
定理陈述:对于任意 \(n\) 个整数 \(a_1, a_2, ..., a_n\),必定存在一个非空的连续子序列,其和能被 \(n\) 整除。
证明过程:
-
构造前缀和:
定义 \(S_0 = 0\),以及 \(S_k = a_1 + a_2 + ... + a_k\)(其中 \(1 \le k \le n\))。
这样我们得到了 \(n+1\) 个前缀和:\(S_0, S_1, ..., S_n\)。 -
应用抽屉原理:
将这 \(n+1\) 个前缀和分别对 \(n\) 取模。模 \(n\) 的余数只有 \(0, 1, 2, ..., n-1\) 这 \(n\) 种可能。
由于我们有 \(n+1\) 个数,根据抽屉原理,必然存在两个不同的前缀和 \(S_i\) 和 \(S_j\)(不妨设 \(i < j\)),使得:\[S_i \equiv S_j \pmod{n} \] -
得出结论:
两式相减得:\[S_j - S_i = a_{i+1} + a_{i+2} + ... + a_j \equiv 0 \pmod{n} \]因此,连续子序列 \(a_{i+1}, ..., a_j\) 的和恰好能被 \(n\) 整除。
注:这个结论只保证“连续”且“和是 n 的倍数”,它与 EGZ 定理(保证“恰好 n 个”数)是不同的两个命题。
第二层:柯西-达文波特(Cauchy-Davenport)方法证明 EGZ 定理
这种方法属于构造性证明,核心是“子集和覆盖引理”。其中所有集合的加法运算,均遵循上文定义的闵可夫斯基和规则。
1. 工具:柯西-达文波特定理(CD 定理)
定理内容:设 \(p\) 是素数,\(A\) 和 \(B\) 是模 \(p\) 剩余类集合 \(\mathbb{Z}_p\) 中的两个非空子集。则它们的闵可夫斯基和满足:
2. 关键引理:子集和覆盖定理
引理陈述:在模素数 \(p\) 下,给定 \(p-1\) 个非零元素 \(b_1, b_2, ..., b_{p-1}\)。那么,它们所有可能的子集和(包括空集和 0)能够覆盖 \(\mathbb{Z}_p\) 中的每一个元素。
引理证明(使用 CD 定理):
- 定义 \(S_k\) 为前 \(k\) 个数 \(b_1, ..., b_k\) 的所有子集和构成的集合。
- 初始状态:\(S_0 = \{0\}\),此时 \(|S_0| = 1\)。
- 递推关系:当加入新的非零数 \(b_{k+1}\) 时,新的子集和集合为(这里应用了闵可夫斯基和的分配律):\[S_{k+1} = S_k \cup (S_k + b_{k+1}) = S_k + \{0, b_{k+1}\} \]
- 应用 CD 定理:\[|S_{k+1}| = |S_k + \{0, b_{k+1}\}| \ge \min(p, |S_k| + 2 - 1) = \min(p, |S_k| + 1) \]
- 只要 \(|S_k| < p\),集合大小至少增加 1。从 \(|S_0| = 1\) 开始,经过 \(p-1\) 步后:\[|S_{p-1}| \ge p \]但模 \(p\) 的世界总共只有 \(p\) 个元素,所以 \(|S_{p-1}| = p\)。即覆盖了整个 \(\mathbb{Z}_p\)。引理得证。
3. EGZ 定理的素数情况证明(使用 CD 方法)
目标:证明对于任意素数 \(p\),任意 \(2p-1\) 个整数 \(a_1, a_2, ..., a_{2p-1}\) 中,必存在 \(p\) 个数,其和能被 \(p\) 整除。
证明过程:
-
排序与平凡情况处理:
将 \(2p-1\) 个数按大小排序:\(a_1 \le a_2 \le ... \le a_{2p-1}\)。
\(p=2\) 时,3个数中必有两个同奇偶,显然成立。以下假设 \(p\) 为奇素数。 -
反证法假设:
假设不存在任何 \(p\) 个数的和能被 \(p\) 整除。 -
构造非零差集合:
计算前 \(p\) 个数的和:\(c = a_1 + a_2 + ... + a_p\)。
若 \(c \equiv 0 \pmod{p}\),则已找到答案,与假设矛盾。因此 \(c \not\equiv 0 \pmod{p}\)。定义 \(p-1\) 个差值:
\[d_i = a_{i+p} - a_i \quad (i = 1, 2, ..., p-1) \]关键步骤:证明所有 \(d_i\) 均非零(模 p)。
若存在某个 \(d_i \equiv 0 \pmod{p}\),即 \(a_{i+p} \equiv a_i \pmod{p}\)。
由于序列已排序,考虑连续的 \(p\) 个数 \(a_i, a_{i+1}, ..., a_{i+p-1}\)。它们的模 \(p\) 余数构成了一个连续的“区间段”。其和模 \(p\) 等于:\[p \cdot a_i + (0 + 1 + ... + p-1) = p \cdot a_i + \frac{p(p-1)}{2} \equiv 0 \pmod{p} \]这就直接找到了 \(p\) 个数,与反证假设矛盾。所以,每个 \(d_i\) 在模 \(p\) 下都非零。
-
使用子集和覆盖引理:
因为 \(d_1, ..., d_{p-1}\) 是非零的,根据引理,存在一个子集 \(I \subseteq \{1, 2, ..., p-1\}\),使得:\[\sum_{i \in I} d_i \equiv -c \pmod{p} \] -
替换构造:
我们初始选取集合 \(\{a_1, a_2, ..., a_p\}\)。
对于每一个 \(i \in I\),我们用 \(a_{i+p}\) 替换掉 \(a_i\)。
新选取的集合仍然包含 \(p\) 个数(因为索引 \(i+p\) 的范围是 \(p+1\) 到 \(2p-1\)),且其总和为:\[c + \sum_{i \in I} (a_{i+p} - a_i) = c + \sum_{i \in I} d_i \equiv c + (-c) = 0 \pmod{p} \]这与反证假设矛盾。故素数情况得证。
4. EGZ 定理的合数情况推广(强归纳法)
目标:假设定理对所有小于 \(n\) 的正整数成立,证明对 \(n\) 也成立。
证明过程:
-
分解质因数:
取 \(n\) 的任意一个素因子 \(p\),令 \(m = n / p\)。显然 \(m < n\)。 -
分批构造:
现有 \(2n - 1 = 2pm - 1\) 个数。
利用已证明的素数情况(模 \(p\)),我们可以从当前剩余的数中,每次取出 \(p\) 个数,使其和为 \(p\) 的倍数。
这个过程可以重复进行 \(2m - 1\) 次,因为总共需要消耗 \(p \times (2m-1) = 2pm - p\) 个数,小于总数 \(2pm - 1\),足够操作。 -
化整为零:
经过上述操作,我们得到了 \(2m - 1\) 个小组。设第 \(i\) 组的和为 \(p \cdot c_i\),由此构造一个新的数列:\[c_1, c_2, ..., c_{2m-1} \] -
应用归纳假设:
因为 \(m < n\),根据强归纳假设,在这 \(2m-1\) 个数 \(c_i\) 中,必能选出 \(m\) 个数(不妨设为 \(c_1, ..., c_m\)),使得它们的和是 \(m\) 的倍数。 -
合并结论:
将选出的 \(m\) 个数对应的 \(m\) 个小组(每组 \(p\) 个数)合并起来。- 数字总个数:\(m \times p = n\) 个。
- 总和:\(p \cdot c_1 + p \cdot c_2 + ... + p \cdot c_m = p \times (c_1 + ... + c_m)\)。
- 由于括号内是 \(m\) 的倍数,总和是 \(p \times m = n\) 的倍数。
至此,EGZ 定理对所有自然数 \(n\) 得证。
第三层:Chevalley-Warning(CW)方法证明 EGZ 定理
这种方法属于存在性证明,利用有限域上的多项式性质,一步到位。
1. 工具:Chevalley-Warning 定理(CW 定理)
定理陈述(实用简化版):
设 \(p\) 是素数,\(f_1, f_2, ..., f_r\) 是定义在 \(\mathbb{Z}_p\) 上的 \(r\) 个多项式。若变量个数 \(n\) 大于所有多项式次数之和(\(n > \sum \deg f_i\)),则:
方程组 \(f_1 = f_2 = ... = f_r = 0\) 的解的个数是 \(p\) 的倍数。
核心推论:由于全零解 \((0,0,...,0)\) 必定是一个解,解的个数既然是 \(p\) 的倍数(至少为 \(p\)),则必然存在一个非全零解。
2. EGZ 定理的素数情况证明(使用 CW 方法)
目标:证明对于任意素数 \(p\),任意 \(2p-1\) 个整数 \(a_1, a_2, ..., a_{2p-1}\) 中,必存在 \(p\) 个数,其和能被 \(p\) 整除。
证明过程:
-
引入选择变量:
引入 \(2p-1\) 个变量 \(x_1, x_2, ..., x_{2p-1}\),它们都在模 \(p\) 的域 \(\mathbb{Z}_p\) 中取值。
我们希望 \(x_i\) 能表达“选”或“不选”。 -
利用费马小定理构造指示器:
费马小定理:对于任意 \(x \in \mathbb{Z}_p\),\(x^{p-1}\) 等于 0(若 \(x=0\))或 1(若 \(x \ne 0\))。
因此,\(x_i^{p-1}\) 充当了完美的“选择开关”:等于 1 表示选中,等于 0 表示未选中。 -
建立方程组:
构造以下两个多项式方程:-
方程 1(保证选中数量为 p 的倍数):
\[f_1 = x_1^{p-1} + x_2^{p-1} + ... + x_{2p-1}^{p-1} = 0 \]由于模 \(p\) 下,\(p\) 个 1 相加等于 0,该方程约束了选中的个数必须是 \(p\) 的倍数。
-
方程 2(保证选中数字的和为 0):
\[f_2 = a_1 x_1^{p-1} + a_2 x_2^{p-1} + ... + a_{2p-1} x_{2p-1}^{p-1} = 0 \]
-
-
检查 CW 定理条件:
- 变量个数:\(n = 2p-1\)。
- \(f_1\) 的次数:\(p-1\)。
- \(f_2\) 的次数:\(p-1\)。
- 总次数:\(2p-2\)。
- 因为 \(2p-1 > 2p-2\),即 \(n > \sum \deg f_i\),满足 CW 定理条件。
-
分析解的结构:
根据 CW 定理,该方程组存在一组非零解 \((x_1, ..., x_{2p-1})\)。- 非零解意味着至少有一个 \(x_i \ne 0\),所以至少有一个 \(x_i^{p-1} = 1\)。
- 方程 \(f_1 = 0\) 要求等于 1 的个数是 \(p\) 的倍数。
- 该个数既不可能是 0(因为非零解),也不可能是 \(2p-1\)(因为 \(2p-1\) 不是 \(p\) 的倍数)。
- 唯一可能:恰好有 \(p\) 个 \(x_i^{p-1}\) 等于 1,其余为 0。
-
得出结论:
这 \(p\) 个等于 1 的变量对应了原数列中的 \(p\) 个数。方程 \(f_2 = 0\) 刚好保证这 \(p\) 个数的加权和(即普通的和)模 \(p\) 为 0。素数情况得证。
3. EGZ 定理的合数情况推广(强归纳法)
此处的推广过程与“柯西方法”中的合数推广完全一致,因为该步骤不依赖于具体的素数证明工具,仅依赖“素数情况已成立”的事实。
(具体步骤请参照第二层第 4 节的“强归纳法证明”,将其中“已证明的素数情况”替换为“由 CW 方法证明的素数情况”即可。)
总结对比
| 证明方法 | 核心工具 | 证明风格 | 核心难点 |
|---|---|---|---|
| 抽屉原理 | 鸽巢原理 | 构造性(连续子序列) | 前缀和构造 |
| 柯西-达文波特法 | 子集和覆盖引理 + CD 定理 | 构造性(替换法) | 证明差元素非零;利用引理拼凑余数 |
| Chevalley-Warning 法 | CW 定理 + 费马小定理 | 存在性(黑箱断言) | 构造合适的方程组满足“变量数 > 总次数”条件 |
至此,我们从最朴素的抽屉原理出发,借助 CD 定理的构造法和 CW 定理的存在性法,完整且严谨地证明了 EGZ 定理。

浙公网安备 33010602011771号