"同余数问题 "(Congruent Number Problem)是数论中一个历史悠久、表述简单但深刻且尚未完全解决的著名问题。尽管它不是 克雷数学研究所(Clay Mathematics Institute)官方列出的七个"千禧年大奖难题"之一,但由于其与BSD猜想(Birch and Swinnerton-Dyer Conjecture,属千禧年难题)的紧密联系,常被通俗地称为"千年数学难题"之一。

千年数学问题同余数:公元972年,在一份阿拉伯手稿中,提出了这样一个问题:一个正整数n何时能成为一个一个由三个有理平方数形成的等差数列的公差,也就是说x-n,x,x+n都是平方数。
一、问题的原始表述
给定一个正整数 n ,是否存在一个三边均为有理数的直角三角形,其面积恰好等于 n ?
若存在,则称 n 为同余数 (congruent number);否则称为非同余数。
注意 :"同余数"中的"同余"并非指模运算中的"congruence",而是源于拉丁语 congruere(意为"相合"),历史术语沿用至今。
二、数学形式化
设 a, b, c \\in \\mathbb{Q}\^+ 满足:
- a\^2 + b\^2 = c\^2 (毕达哥拉斯三元组,有理数解),
- \\frac{1}{2}ab = n 。
则 n 是同余数。
等价地,可令 a = \\frac{p}{q}, b = \\frac{r}{s} ,通分后转化为整数问题,但更有效的方法是通过椭圆曲线转化。
三、与椭圆曲线的等价性(关键桥梁)
定理 (经典结果,可追溯至Fermat、Euler,现代形式由Weil等人完善):
正整数 n 是同余数,当且仅当椭圆曲线
E n : y 2 = x 3 − n 2 x E_n : y^2 = x^3 - n^2 x En:y2=x3−n2x
在有理数域 \\mathbb{Q} 上具有正秩(即 Mordell--Weil 群 E_n(\\mathbb{Q}) 的秩 \\geq 1 )。
- 该曲线总有三个2阶挠点: (0,0), (\\pm n, 0) ,对应退化三角形(面积0)。
- 存在非挠有理点 \\Leftrightarrow 存在面积为 n 的有理直角三角形。
证明概要 :
从有理直角三角形 (a,b,c) 出发,构造映射:
x = n ( a + c ) b , y = 2 n 2 ( a + c ) b 2 x = \frac{n(a + c)}{b}, \quad y = \frac{2n^2(a + c)}{b^2} x=bn(a+c),y=b22n2(a+c)
可验证 (x,y) \\in E_n(\\mathbb{Q}) 且非挠。反之亦然。
四、Tunnell 定理(1983)------条件性判定准则
John Tunnell 利用模形式理论给出了一个可计算的判别法 ,但其充分性依赖于BSD猜想。
对奇数 n :
定义
A ( n ) = # { ( x , y , z ) ∈ Z 3 : n = 2 x 2 + y 2 + 32 z 2 } , B ( n ) = # { ( x , y , z ) ∈ Z 3 : n = 2 x 2 + y 2 + 8 z 2 } . A(n) = \#\{(x,y,z) \in \mathbb{Z}^3 : n = 2x^2 + y^2 + 32z^2\}, \\ B(n) = \#\{(x,y,z) \in \mathbb{Z}^3 : n = 2x^2 + y^2 + 8z^2\}. A(n)=#{(x,y,z)∈Z3:n=2x2+y2+32z2},B(n)=#{(x,y,z)∈Z3:n=2x2+y2+8z2}.
若 n 是同余数,则 A(n) = \\frac{1}{2} B(n) 。
对偶数 n = 2m :
定义
C ( n ) = # { ( x , y , z ) ∈ Z 3 : m = 4 x 2 + y 2 + 32 z 2 } , D ( n ) = # { ( x , y , z ) ∈ Z 3 : m = 4 x 2 + y 2 + 8 z 2 } . C(n) = \#\{(x,y,z) \in \mathbb{Z}^3 : m = 4x^2 + y^2 + 32z^2\}, \\ D(n) = \#\{(x,y,z) \in \mathbb{Z}^3 : m = 4x^2 + y^2 + 8z^2\}. C(n)=#{(x,y,z)∈Z3:m=4x2+y2+32z2},D(n)=#{(x,y,z)∈Z3:m=4x2+y2+8z2}.
若 n 是同余数,则 C(n) = \\frac{1}{2} D(n) .
Tunnell 的结论:
- 上述条件是必要条件(无条件成立);
- 若 BSD猜想对 E_n 成立 ,则也是充分条件。
由于 BSD 猜想对解析秩为 0 或 1 的椭圆曲线已被证明(Gross--Zagier, Kolyvagin, 1980s),因此对这些 n ,Tunnell 判据可无条件使用。
五、已知结果与例子
| n | 是否同余数 | 说明 |
|---|---|---|
| 1 | 否 | 费马用无穷递降法证明 |
| 2 | 否 | --- |
| 3 | 否 | --- |
| 4 | 否 | --- |
| 5 | 是 | 三角形边长: \\frac{3}{2}, \\frac{20}{3}, \\frac{41}{6} |
| 6 | 是 | 经典整数三角形 3\\text{-}4\\text{-}5 ,面积6 |
| 7 | 是 | 存在有理解 |
模8性质(必要条件):
- 若 n \\equiv 5,6,7 \\pmod{8} ,则可能是同余数;
- 若 n \\equiv 1,2,3 \\pmod{8} ,则不可能是同余数(已证明)。
注: n \\equiv 4 \\pmod{8} 需单独分析(如 n=4 非同余数)。
六、与千禧年难题的关系澄清
- 同余数问题本身不是千禧年大奖难题。
- 但它等价于BSD猜想对一族特定椭圆曲线 E_n 的成立。
- 因此,完全解决同余数问题将意味着BSD猜想在该族曲线上成立,而BSD是七个千禧年难题之一。
七、当前研究状态(截至2026年)
- 对所有 n \\leq 10\^{12} ,借助Tunnell判据和计算机验证,已在BSD假设下完成分类。
- 对解析秩 ≤1 的 E_n ,可无条件判定。
- 一般情形仍开放,依赖BSD猜想的完全证明。
权威参考文献(经核实)
- J. Tunnell, "A classical Diophantine problem and modular forms of weight 3/2", Inventiones Mathematicae, Vol. 72, 1983, pp. 323--334.
- J. H. Silverman & J. Tate, Rational Points on Elliptic Curves, Springer, 1992.
- N. Koblitz, Introduction to Elliptic Curves and Modular Forms, 2nd ed., Springer, 1993.
- Clay Mathematics Institute -- "The Birch and Swinnerton-Dyer Conjecture", official millennium problem description.
- OEIS A003273: Congruent numbers (verified sequence).
结论
"同余数问题"是一个连接初等数论、代数几何与自守形式的深刻问题。其核心在于判断特定椭圆曲线是否有非平凡有理点,而这一问题的完全解决等价于BSD猜想在该情形下的成立。尽管在大量具体情形下已有答案,但一般情形仍未解决,属于现代数论的核心未解问题之一。
用 Python 代码验证 5 是同余数
python
from fractions import Fraction
# 定义边长(有理数)
a = Fraction(3, 2)
b = Fraction(20, 3)
c = Fraction(41, 6)
# 验证勾股定理:a^2 + b^2 == c^2
lhs = a*a + b*b
rhs = c*c
# 验证面积:(1/2)*a*b == 5
area = Fraction(1, 2) * a * b
# 输出结果
print(f"a = {a}, b = {b}, c = {c}")
print(f"a² + b² = {lhs}")
print(f"c² = {rhs}")
print(f"勾股成立?{lhs == rhs}")
print(f"面积 = {area}")
print(f"面积等于5?{area == 5}")
补充说明:为何不用浮点数?
若使用 float(如 a = 1.5),会因浮点精度导致 aa + bb == c*c 判断失败。例如:
python
a = 1.5
b = 20/3
c = 41/6
print(a*a + b*b == c*c) # 可能输出 False!