try ai
科普
编辑
分享
反馈
  • 线性丢番图方程

线性丢番图方程

SciencePedia玻尔百科
核心要点
  • 线性丢番图方程 ax+by=cax + by = cax+by=c 有整数解的充要条件是 aaa 和 bbb 的最大公约数整除 ccc。
  • 扩展欧几里得算法提供了一种寻找一个初始整数解的方法,并可以从该解以一种可预测的方式生成一个无限的完整解集。
  • 这些方程与模算术有着根本的联系,并且是计算机科学、抽象代数乃至数理逻辑等领域的核心组成部分。
  • 齐次线性方程组的整数解集构成一个称为格(lattice)或自由 Z\mathbb{Z}Z-模的代数结构。

引言

当我们将代数的世界限制在整数范围内时,会发生什么?这个问题引出了丢番图方程——一类几个世纪以来一直让数学家着迷的问题。在其最简单的形式中,线性丢番图方程要求我们为 ax+by=cax + by = cax+by=c 这样的线性方程寻找整数解。虽然这看起来像一个简单的谜题,但它构成了理解任何由离散、不可分割的单元构建的系统的基石。本文旨在解决如何超越猜测,揭示支配这些整数解的优雅而系统的规则。在接下来的章节中,我们将首先深入探讨“原理与机制”,探索解的存在性条件、寻找解的算法方法以及它们所拥有的优美几何结构。然后,我们将踏上“应用与跨学科联系”的旅程,揭示这一基础理论如何为计算机科学、密码学、抽象代数乃至逻辑学基础本身提供一种统一的语言。

原理与机制

想象你站在一个无限的网格上,就像一个巨大的棋盘。你只能沿着基本方向迈出特定固定长度的步子。例如,你在东西方向上每走一步,你的位置就改变 aaa 个单位;在南北方向上每走一步,就改变 bbb 个单位。我们正在探索的问题是:从原点 (0,0)(0,0)(0,0) 出发,你能否到达一个特定的目标方格 (c,d)(c, d)(c,d)?这并不完全是线性丢番图方程的问题,但它抓住了其精髓:我们正在用给定数值的整数倍来构建一个目标值。一个线性丢番图方程,以其最简单的形式 ax+by=cax + by = cax+by=c 出现时,提出了一个类似的问题:我们能否将 xxx 个大小为 aaa 的“步”和 yyy 个大小为 bbb 的“步”组合起来,从而精确地达到值 ccc?

这个问题的妙处在于,它并非一个反复试错的问题。整数解的世界受深刻而优雅的原理支配,将看似大海捞针的搜索过程,转变为一场有清晰地图的旅程。

存在性条件:一个整除性问题

在开始探寻宝藏之前,明智的做法是先问问我们所寻求的宝藏是否存在。对于方程 ax+by=cax + by = cax+by=c,我们何时能确定至少存在一对整数 (x,y)(x, y)(x,y) 满足它?

让我们思考一下左边部分,ax+byax + byax+by。设 ddd 是 aaa 和 bbb 的最大公约数,记为 d=gcd⁡(a,b)d = \gcd(a, b)d=gcd(a,b)。根据定义,ddd 整除 aaa 且 ddd 整除 bbb。这意味着我们可以将 aaa 和 bbb 写成 a=da′a = da'a=da′ 和 b=db′b = db'b=db′ 的形式,其中 a′a'a′ 和 b′b'b′ 是某个整数。将它们代入,我们得到: da′x+db′y=d(a′x+b′y)d a' x + d b' y = d(a'x + b'y)da′x+db′y=d(a′x+b′y) 这揭示了一个深刻的道理:aaa 和 bbb 的任何整数线性组合都必须是它们最大公约数 ddd 的倍数。这就像是说,如果你只能走长度为2和4的步子,你到达的任何位置离起点的距离都必须是偶数。你永远无法落在位置3上。

因此,为了使方程 ax+by=cax + by = cax+by=c 有可能成立,ccc 必须是 d=gcd⁡(a,b)d = \gcd(a, b)d=gcd(a,b) 的倍数。如果不是,解就不可能存在。考虑方程 2x+4y=32x + 4y = 32x+4y=3。这里 gcd⁡(2,4)=2\gcd(2, 4) = 2gcd(2,4)=2。任何组合 2x+4y2x + 4y2x+4y 都是一个偶数,所以它永远不可能等于3。

令人惊奇的是,这个条件不仅是必要的,它也是充分的。法国数学家 Étienne Bézout 证明了一个基石性的结论:对于任意整数 aaa 和 bbb,你总能找到整数 x′x'x′ 和 y′y'y′ 使得 ax′+by′=gcd⁡(a,b)ax' + by' = \gcd(a,b)ax′+by′=gcd(a,b)。这就是著名的​​贝祖等式​​ (Bézout's identity)。如果我们知道 ddd 整除 ccc,我们就可以写出 c=kdc = kdc=kd,其中 kkk 是某个整数。然后我们可以简单地将贝祖等式两边乘以 kkk: k(ax′+by′)=k⋅gcd⁡(a,b)k(ax' + by') = k \cdot \gcd(a,b)k(ax′+by′)=k⋅gcd(a,b) a(kx′)+b(ky′)=ca(kx') + b(ky') = ca(kx′)+b(ky′)=c 就这样,我们找到了一个解:x=kx′x = kx'x=kx′ 和 y=ky′y = ky'y=ky′。

所以,完整而优美简洁的规则是:方程 ax+by=cax + by = cax+by=c 有整数解的充要条件是 gcd⁡(a,b)\gcd(a, b)gcd(a,b) 整除 ccc。这一条原理是通往整个理论的大门。我们甚至可以反向使用它。假设一个系统日志告诉我们方程 187x+391y=34187x + 391y = 34187x+391y=34 已被成功求解。即使不知道解是什么,我们也可以确定 gcd⁡(187,391)\gcd(187, 391)gcd(187,391) 必定整除 34。用欧几里得算法快速计算可知 gcd⁡(187,391)=17\gcd(187, 391) = 17gcd(187,391)=17,并且由于 17 确实能整除 34,该日志与数学事实是一致的。

找到立足点:欧几里得算法的魔力

知道解存在是一回事;找到它则是另一回事。贝祖等式保证了解的存在,但我们如何找到那对神奇的整数 x′x'x′ 和 y′y'y′ 呢?关键工具正是我们用来求最大公约数的那个工具:​​欧几里得算法​​。

欧几里得算法是一个反复相除的过程。例如,为了求 gcd⁡(91,63)\gcd(91, 63)gcd(91,63),我们这样做: 91=1⋅63+2891 = 1 \cdot 63 + 2891=1⋅63+28 63=2⋅28+763 = 2 \cdot 28 + 763=2⋅28+7 28=4⋅7+028 = 4 \cdot 7 + 028=4⋅7+0 最后一个非零余数,7,就是我们的最大公约数。但当我们逆向运行这个过程时,奇迹就发生了。我们可以用它上面一步的数字,63和28,来表示最大公约数7。然后,我们可以用第一个方程替换28,从而用91和63来表示7。这就像解开一根绳子。

从第二行:7=63−2⋅287 = 63 - 2 \cdot 287=63−2⋅28。 从第一行:28=91−1⋅6328 = 91 - 1 \cdot 6328=91−1⋅63。

现在将28的表达式代入7的方程中: 7=63−2(91−1⋅63)7 = 63 - 2(91 - 1 \cdot 63)7=63−2(91−1⋅63) 7=63−2⋅91+2⋅637 = 63 - 2 \cdot 91 + 2 \cdot 637=63−2⋅91+2⋅63 7=3⋅63−2⋅917 = 3 \cdot 63 - 2 \cdot 917=3⋅63−2⋅91 或者,为了匹配我们的标准形式,91(−2)+63(3)=791(-2) + 63(3) = 791(−2)+63(3)=7。

我们做到了!我们找到了丢番图方程 91x+63y=791x + 63y = 791x+63y=7 的一个特解 (x,y)=(−2,3)(x, y) = (-2, 3)(x,y)=(−2,3)。这个方法,称为​​扩展欧几里得算法​​,是我们找到第一个关键解的藏宝图。

完整图景:从一个点到无限阶梯

找到一个解就像在广阔的沙漠中找到一片绿洲。但还有其他的解吗?假设我们有方程 ax+by=cax+by=cax+by=c 的一个特解 (x0,y0)(x_0, y_0)(x0​,y0​)。现在假设 (x,y)(x, y)(x,y) 是任意另一个解。让我们看看它们的差: ax+by=cax + by = cax+by=c ax0+by0=cax_0 + by_0 = cax0​+by0​=c 将两个方程相减得到: a(x−x0)+b(y−y0)=0a(x-x_0) + b(y-y_0) = 0a(x−x0​)+b(y−y0​)=0 这揭示了一个惊人的洞见。任意两个解之间的差,我们称之为 (Δx,Δy)(\Delta x, \Delta y)(Δx,Δy),必须是齐次方程 aΔx+bΔy=0a\Delta x + b\Delta y = 0aΔx+bΔy=0 的一个整数解。

这个齐次方程的解很容易找到。我们可以写成 aΔx=−bΔya\Delta x = -b\Delta yaΔx=−bΔy。两边同除以 d=gcd⁡(a,b)d = \gcd(a, b)d=gcd(a,b),得到 (a/d)Δx=−(b/d)Δy(a/d)\Delta x = -(b/d)\Delta y(a/d)Δx=−(b/d)Δy。由于 a/da/da/d 和 b/db/db/d 互质,为使等式成立,Δx\Delta xΔx 必须是 b/db/db/d 的倍数,Δy\Delta yΔy 必须是 −a/d-a/d−a/d 的倍数。所以齐次方程的通解是: Δx=tbd,Δy=−tad\Delta x = t \frac{b}{d}, \quad \Delta y = -t \frac{a}{d}Δx=tdb​,Δy=−tda​ 对于任意整数 ttt。

这意味着一旦你有一个解 (x0,y0)(x_0, y_0)(x0​,y0​),你就可以通过反复加上这些步长来找到所有其他解。方程 ax+by=cax+by=cax+by=c 的通解是: x=x0+tbdx = x_0 + t \frac{b}{d}x=x0​+tdb​ y=y0−tady = y_0 - t \frac{a}{d}y=y0​−tda​ 对于任意整数 t∈Zt \in \mathbb{Z}t∈Z。

整数解集并非随机散落的点。它是沿着直线 ax+by=cax+by=cax+by=c 的一个无限且完全规则的点构成的阶梯。阶梯的每一“级”与下一级之间都由一个恒定的位移向量 (bd,−ad)(\frac{b}{d}, -\frac{a}{d})(db​,−da​) 分隔。

这产生了一个优美的几何推论。我们可以问:这条直线上两个连续解点之间的距离是多少?它就是这个位移向量的长度: 距离=(bd)2+(−ad)2=a2+b2d\text{距离} = \sqrt{\left(\frac{b}{d}\right)^2 + \left(-\frac{a}{d}\right)^2} = \frac{\sqrt{a^2 + b^2}}{d}距离=(db​)2+(−da​)2​=da2+b2​​ 对于像 3x+4y=123x+4y=123x+4y=12 这样的方程,我们有 a=3,b=4,c=12a=3, b=4, c=12a=3,b=4,c=12。由于 gcd⁡(3,4)=1\gcd(3,4)=1gcd(3,4)=1,连续整数点之间的距离是 32+421=5\frac{\sqrt{3^2+4^2}}{1} = 5132+42​​=5。整数解是像 (4,0),(0,3),(−4,6)(4,0), (0,3), (-4,6)(4,0),(0,3),(−4,6) 这样的点,沿着直线,每个点与其相邻点的距离恰好是5个单位。离散的整数世界催生了完美的规则几何。

换个视角:时钟、同余与编码

还有另一种同样强大的方式来看待我们的方程 ax+by=cax + by = cax+by=c。这就是​​模算术​​的语言,即余数的算术,或称“时钟算术”。

如果我们审视方程 ax+by=cax+by=cax+by=c 并考虑所有数“模 bbb”的情况,我们本质上是在问除以 bbb 时的余数是多少。项 bybyby 总是 bbb 的整数倍,所以它的余数是0。方程突然简化为: ax≡c(modb)ax \equiv c \pmod{b}ax≡c(modb) 这是一个​​线性同余方程​​。我们用一个只有一个变量的同余方程,换掉了一个有两个整数变量的线性方程。在这个同余方程中求解 xxx 意味着找到一个 xxx 使得 ax−cax-cax−c 是 bbb 的倍数。一旦我们找到这样一个 xxx,我们就知道 (c−ax)/b(c-ax)/b(c−ax)/b 将是一个整数,我们可以称之为 yyy,从而得到原方程的解 (x,y)(x,y)(x,y)。

丢番图方程和模算术之间的这座桥梁是双向的。一个像“一个每17小时运行一次的脚本,在24小时制的时钟上首次在第5小时启动是在什么时候”的问题,可以写成同余式 17x≡5(mod24)17x \equiv 5 \pmod{24}17x≡5(mod24)。根据同余的定义,这意味着 17x−517x - 517x−5 是24的倍数,比如说 17x−5=24k17x - 5 = 24k17x−5=24k,其中 kkk 是某个整数。整理后得到 17x−24k=517x - 24k = 517x−24k=5。通过令 y=−ky = -ky=−k,我们恢复了一个线性丢番图方程:17x+24y=517x + 24y = 517x+24y=5。这两个问题是同一个问题,只是用了不同的数学语言来表述。这种等价性不仅仅是一种巧合;它是贯穿数论和密码学的一个基本工具。

超越直线:高维空间中的格

当我们从两个变量扩展到多个变量时,会发生什么?我们可能会面临一个线性方程组,它可以写成矩阵形式 Ax⃗=b⃗A\vec{x} = \vec{b}Ax=b,其中 AAA 是一个整数系数矩阵,我们寻求一个整数解向量 x⃗\vec{x}x。

我们发现的核心原理以一种优美的方式得到了推广。首先,考虑齐次系统 Ax⃗=0⃗A\vec{x} = \vec{0}Ax=0。所有整数解的集合不再仅仅是直线上的点。它形成了一个更高维的网格,称为​​格​​(lattice)。这个格是有限个基向量的所有可能整数线性组合的集合,这些基向量张成了矩阵 AAA 的整数零空间。对于像下面这样的系统: x1−3x2+2x3+5x4=0x_{1}-3x_{2}+2x_{3}+5x_{4}=0x1​−3x2​+2x3​+5x4​=0 3x2−3x3−6x4=03x_{2}-3x_{3}-6x_{4}=03x2​−3x3​−6x4​=0 可以发现所有整数解的形式为 t(1,1,1,0)+s(1,2,0,1)t(1,1,1,0) + s(1,2,0,1)t(1,1,1,0)+s(1,2,0,1),其中 sss 和 ttt 是整数。这是一个存在于四维空间中的二维格,由基向量 w⃗1=(1,1,1,0)\vec{w}_1=(1,1,1,0)w1​=(1,1,1,0) 和 w⃗2=(1,2,0,1)\vec{w}_2=(1,2,0,1)w2​=(1,2,0,1) 张成。这个格有其自身的“几何”,包括一个可以从其基向量计算出的基本体积。

对于完整的非齐次系统 Ax⃗=b⃗A\vec{x} = \vec{b}Ax=b,解的结构遵循我们之前看到的相同模式:通解是一个特解 x⃗p\vec{x}_pxp​ 与齐次系统整个解格的和。

那么存在性条件呢?它也得到了推广。我们现在必须考虑的不仅仅是一个最大公约数,而是 AAA 的所有可能的方子矩阵的行列式(子式)的最大公约数。这个条件本质上是说,左侧 Ax⃗A\vec{x}Ax 能产生的数值的“粒度”必须与右侧 b⃗\vec{b}b 的值兼容。虽然细节更为复杂,但其精神与我们对双变量方程的简单规则是相同的:左边的构建模块必须足够精细,才能构建出右边的目标。

从一条等距点的直线到复杂的高维格,线性丢番图方程的世界受代数、几何和数论之间卓越的相互作用所支配。这是一个简单的整数问题能够展开成一个丰富而优美的结构,并位于数学核心的世界。

应用与跨学科联系

既然我们已经摆弄过线性丢番图方程的机器——学会了如何判断解是否存在以及如何找到所有解——我们可以退后一步,问一个更深刻的问题:这些方程在现实世界中出现在哪里?它们是用来做什么的?你可能会倾向于认为它们是数学上的奇珍异品,是局限于数论教科书页面的巧妙谜题。但事实远非如此。

我们一直在研究的是一种描述任何由离散、不可分割单元构成的系统的基本语言。每当我们处理整数数量——硬币、粒子、数据包、格点、逻辑命题——并对它们施加线性约束时,一个丢番图方程就潜伏在表面之下。在本章中,我们将踏上一段旅程,看看它的疆域是多么广阔和多样。我们将看到,这些看似简单的方程形成了一条线索,贯穿于数论、计算机科学、抽象代数,甚至数学逻辑的基础之中。

整数与有理数的颗粒世界

让我们从离家最近的地方开始,在纯数字的世界里。最直观的应用之一是著名的“硬币问题”或称弗罗贝尼乌斯硬币问题。假设你有无限供应的两种硬币,比如说5分和7分的硬币。你能凑出哪些金额?这实际上是在问,对于哪些整数 nnn,方程 5x+7y=n5x + 7y = n5x+7y=n 存在非负整数解 xxx 和 yyy。

如果你稍微尝试一下,你会发现有些金额是无法凑出的。你无法凑出1、2、3、4、6、8、9、11、13、16或23分。数字23原来是最大的无法凑出的金额,即这对硬币的*弗罗贝尼乌斯数。超过23之后,每一个整数金额都可以被凑出。这个边界,即在此之后一切皆有可能的点,被称为导体数* (conductor)。这不仅仅是一个游戏;它揭示了关于整数组合的一个深刻真理。任何一组互质的生成元都有有限数量的“缺口”,在此之后它们生成的结构变得完整。同样的原理出现在更抽象的背景下,比如在物理学中计算状态。

丢番图方程也告诉了我们一些关于数轴结构本身的美妙事情。有理数,即分数,似乎无限密集地散布着。然而,其中隐藏着一种秩序。考虑*法里序列*,它是在0和1之间按大小排序的既约分数序列。一个显著的性质是,如果 ab\frac{a}{b}ba​ 和 cd\frac{c}{d}dc​ 是任何法里序列中的两个连续分数,它们会奇迹般地被方程 ∣ad−bc∣=1|ad - bc| = 1∣ad−bc∣=1 所约束。这意味着找到一个分母比给定分数小的“最接近”的分数,等价于求解一个形式完全如此的丢番图方程。有理数远非随机散布,而是被这种优雅的丢番图关系编织在一起,形成了一幅精致、错综复杂的织锦。

数字宇宙:计算、复杂性与密码学

在我们的现代世界里,“离散单元”通常意味着比特和字节。因此,丢番图方程处于计算机科学的核心也就不足为奇了。我们用来寻找初始解的扩展欧几里得算法,是数论算法的基石。

想象一个复杂的后勤问题:你需要选择一组项目,每个项目都有特定的成本,以在全局预算下最大化你能完成的项目数量。一个子问题可能是确定一个项目是否可行,其中可行性由一个对变量有约束(例如,资源必须在一定范围内)的丢番图方程定义。第一步是求解有界丢番图方程,以找到该项目的最低成本。然后,一个更高级别的算法,也许是贪心或动态规划方法,使用这些成本来做出最终选择。我们“简单”的方程成为了一个复杂优化流程中的重要组成部分。

但故事在这里发生了戏剧性的转折。我们已经看到,求解单个方程 ax+by=cax+by=cax+by=c 在计算上是“容易的”——欧几里得算法非常高效。如果们有一个包含许多变量的许多方程的系统,比如 Ax=bA\mathbf{x} = \mathbf{b}Ax=b,并且我们加上一个看似无害的约束,即解必须是非负整数,会发生什么呢?

这个问题的难度会爆炸性增长。这个问题,被称为整数线性规划,是计算复杂性理论的基石。它被认为是NP完全的,简单来说,这意味着它在根本上是“困难的”。目前没有已知的有效算法可以解决所有情况。像调度、路由和资源分配等问题通常可以被表述成这种形式。PARTITION问题(能否将一组数分成总和相等的两个子集?)可以被改写为一个线性丢番图方程组,这一事实证明了这种困难性。这种二分法——求解一个方程的容易性与求解一个系统的巨大难度——是一个深刻的教训,说明了复杂性是如何从简单的组件中涌现出来的。

抽象结构的交响曲

数学的力量在于它能够抽离细节,揭示潜在的结构。线性丢番图方程为此提供了一个优美的例子。

考虑一个齐次方程组 Ax=0A\mathbf{x} = \mathbf{0}Ax=0 的所有整数解 (x=(x1,x2,…,xn))(\mathbf{x} = (x_1, x_2, \dots, x_n))(x=(x1​,x2​,…,xn​)) 的集合。这个解集不仅仅是向量的随机集合。它具有丰富的代数结构:如果你将两个解相加,你会得到另一个解。如果你用任何整数乘以一个解,你也会得到另一个解。用抽象代数的语言来说,解集构成了一个整数上的自由模(Z\mathbb{Z}Z-module),它就像一个向量空间,但标量是整数。这个解空间的“维度”被称为它的秩,它代表了可以构建所有其他解的基本、独立解的数量。这将我们寻找整数解的过程从单纯的计算提升为对基本代数对象的探索。

同样的结构也出现在理论物理学和数学最前沿的领域之一:李代数的表示论。在试图理解宇宙的基本对称性时,物理学家使用这些代数来分类基本粒子。允许的状态可以用“根格”中的向量来描述。一个关键问题是:一个特定的状态可以通过组合一组“正根”(基本构建块)以多少种方式构建出来?这变成了一个计算线性丢番图方程组非负整数解数量的问题,这个计算由*Kostant配分函数*给出。这与我们的硬币问题是同一种问题,只是披上了李理论令人生畏的外衣!

即使是单个方程的解集结构也充满了惊喜。我们知道方程 ax+by=cax+by=cax+by=c 的通解可以写成 x(t)=x0+(b/d)tx(t) = x_0 + (b/d)tx(t)=x0​+(b/d)t 和 y(t)=y0−(a/d)ty(t) = y_0 - (a/d)ty(t)=y0​−(a/d)t,其中 ttt 是一个整数参数。如果我们从这些解中构建所有可能的分数 p/q=x(t)/y(t)p/q = x(t)/y(t)p/q=x(t)/y(t) 的集合,会发生什么?我们正在将无限的整数集 Z\mathbb{Z}Z 映射到有理数集 Q\mathbb{Q}Q。我们会得到一个有限集吗?我们会得到所有的有理数吗?答案惊人地优雅:这个过程生成一个可数无限的不同有理数的集合。我们简单的线性方程变成了一个映射设备,在稠密的有理数森林中描绘出一条特定的、无限的路径。

随机游走与隐藏的节奏

也许最令人惊讶的应用是那些出现在乍一看与整数或方程毫无关系的领域中的应用。考虑一个粒子在二维网格上进行随机游走。从任何一点,它可以按几个预设的向量之一跳跃,比如说 v1=(2,1)\mathbf{v}_1=(2,1)v1​=(2,1), v2=(−3,0)\mathbf{v}_2=(-3,0)v2​=(−3,0) 和 v3=(−1,−3)\mathbf{v}_3=(-1,-3)v3​=(−1,−3)。如果它从原点 (0,0)(0,0)(0,0) 开始,它能返回原点吗?如果能,可能需要多少步?

在 nnn 步后返回原点意味着我们走了 n1n_1n1​ 次 v1\mathbf{v}_1v1​ 类型的步,n2n_2n2​ 次 v2\mathbf{v}_2v2​ 类型的步,以及 n3n_3n3​ 次 v3\mathbf{v}_3v3​ 类型的步,使得 n1+n2+n3=nn_1+n_2+n_3=nn1​+n2​+n3​=n 并且总位移为零:n1v1+n2v2+n3v3=0n_1\mathbf{v}_1 + n_2\mathbf{v}_2 + n_3\mathbf{v}_3 = \mathbf{0}n1​v1​+n2​v2​+n3​v3​=0。这个向量方程不过是关于整数 n1,n2,n3n_1, n_2, n_3n1​,n2​,n3​ 的两个线性齐次丢番图方程组。解这个系统表明,只有当总步数 nnn 是一个特定数字(在这种情况下是17)的倍数时,返回旅程才可能发生。所有可能的返回时间的最大公约数被称为*马尔可夫链的周期*。在这里,丢番图解的确定性、刚性结构,为一个步步完全随机的过程施加了一种隐藏的节奏,一个基本频率。

逻辑本身的基础

我们的旅程在最深的层次上结束:数学本身的基础。在20世纪初,逻辑学家们努力解决一个最基本的问题之一:数学是可判定的吗?也就是说,我们能否创造一个通用算法,它能接受任何数学陈述,并在有限的时间内告诉我们它是真还是假?

1931年,Kurt Gödel 著名地证明了,对于任何强大到足以描述自然数算术(同时包含加法和乘法)的系统,答案是否定的。这样的系统永远是不完备和不可判定的。但如果我们更谦虚一些呢?如果我们只允许加法,不允许乘法呢?这个系统,称为普雷斯伯格算术,描述了像“对于每一个 xxx,存在一个 yyy 使得 x+x=y+1x+x = y+1x+x=y+1”这样的陈述。

在一项里程碑式的成果中,Mojżesz Presburger 在1929年证明了这个更简单的算术是完备和可判定的!确实存在一个算法来确定任何此类陈述的真伪。而这个算法的核心是什么?量词消去法,一个系统地将任何陈述转换为一个没有量词(“对于所有”、“存在”)的更简单陈述的过程。这个过程的核心,依赖的正是我们一直在研究的线性丢番图方程和同余方程组的可解性理论。本质上,整个加法的逻辑大厦可以归结为我们一直在研究的原理。线性丢番图方程理论不仅仅是数学中的一个工具;在非常真实的意义上,它就是算术本身的逻辑支柱。

从我们口袋里的硬币到宇宙的对称性,从算法的效率到逻辑的极限,不起眼的线性丢番图方程证明了自己是一个具有惊人力量和统一之美的概念。它证明了科学最深刻的真理往往被编码在其最简单、最优雅的思想之中。