前置知识:连分数二次域

引入

本文讨论(广义)Pell 方程的求解。广义 Pell 方程是指关于 的不定方程

其中, 是正整数且不是完全平方数 1 是非零整数。狭义的 Pell 方程特指 的特殊情形,有时也包括 的情形。广义 Pell 方程与在实二次整数环内寻找范数为 的二次整数紧密相关,而常常称作(狭义)Pell 方程的这些情形可以看作是寻找实二次整数环内的单位数。

当本文提及 Pell 方程时,特指 的情形。相应地, 的情形称为负 Pell 方程 2(negative Pell’s equation)。

解的结构

广义 Pell 方程的整数解 和二次整数 联系密切,因此文献中 Pell 方程的解常常写作 的形式。因为二次整数的范数

所以,广义 Pell 方程大致相当于在求解范数为 的二次整数。但是,两者确实有细微的区别。当 都是整数时, 一定是二次整数;反过来,二次整数未必要求 都是整数——在 的情形, 还可以同时是半整数 3

这个区别在求解基本单位数时格外重要。因为二次整环中的单位数是指范数为 的二次整数。对于 ,要找到这样的单位数,只需要求解广义 Pell 方程在 的情形即可;但是对于 ,还需要考虑 的情形。下文 会讨论单位数的求解方法。

要理解广义 Pell 方程解的结构,需要从 Brahmagupta 恒等式 入手:

它相当于二次整数的范数保持乘法,即

利用这一恒等式,可以利用方程 和方程 的整数解复合出方程 的整数解。当然,从二次整数的角度看,解的复合就是二次整数的乘法,这就体现了将 Pell 方程的解记作二次整数形式的方便之处。特别地,取 就可以发现,如果已知 的一组解和相应的 Pell 方程 的全体解,就可以得到 更多的解。当然,这种方法未必能够生成全部的解。但是,这至少说明理解 Pell 方程的解的结构对理解广义 Pell 方程的解的结构有重要作用。

Pell 方程

方程 的几何意义是实轴在 轴、虚轴在 轴的双曲线。双曲线上的每个点都唯一对应了 的一个非零取值:双曲线的左支对应着 的负值,右支则对应正值。而且,在每一支上,双曲线自下而上对应的 的取值是严格递增的。二次整数的取值给 Pell 方程的解赋予了自然的顺序。

双曲线同时关于 轴和 轴对称,因此讨论 Pell 方程的解只需要考虑在第一象限内的那一段即可,其余解可以通过对称性获得。这相当于只考虑 的解。如果方程除了 之外还存在不平凡的解,那么一定在第一象限内存在 取值最小的解 ,这也是第一象限内(不含坐标轴)横纵坐标都最小的整点,它称为 Pell 方程的基本解(fundamental solution)4。根据前文的讨论,满足 的整数对 都是 Pell 方程的解,而且都在第一象限。反过来,这也的确是 Pell 方程在第一象限内的全部解。再利用对称性,就可以得到如下结论:

定理

设 Pell 方程 的基本解是 。那么,它的全部解就是

前文的讨论只是假设了基本解的存在。现在要说明的是,Pell 方程总是存在非平凡的解。

定理

Pell 方程 总是存在除了 之外的整数解。

当然,本节提供的是非构造性的证明,在下文讨论 Pell 方程的解法时,会直接利用连分数的渐近分数构造出 Pell 方程的解,因而提供了 Pell 方程存在非平凡解的另一种证明。另外,尽管本节得到的 Pell 方程解的结构与实二次整数环的单位数的结构是一致的,但是对于 的情形,本节并没有完全解决相应的二次整数环的单位数的结构问题,下文将进一步讨论。

广义 Pell 方程

广义 Pell 方程 的图像同样是平面上的双曲线,同样以 轴和 轴为对称轴。前文已经指出,方程 的部分解可能只相差一个 Pell 方程解的因子,这意味着可以将方程 的解划分为等价类。对于方程 的两个解 ,如果存在 Pell 方程的解 使得 成立,那么称解 等价。两个解等价的充分必要条件是

因为 Pell 方程的解相对容易求出,一个自然的想法是在上述的每个等价类中各求出一个解。只要知道这些解,就可以利用相应的 Pell 方程的解得到所要求的广义 Pell 方程的全部解。在广义 Pell 方程的解的等价类中,由于对称性,每个等价类都存在纵坐标 非负但是尽可能小的解:如果这样的解唯一,它就称为该等价类的基本解;否则,该等价类必然有两个 非负且最小的解,而且它们关于 轴对称,此时选择 的那个作为基本解。由此,求解广义 Pell 方程 ,就相当于求解它的基本解集 。设它对应的 Pell 方程的基本解是 ,则广义 Pell 方程的全部解的集合是

广义 Pell 方程的基本解必然是有限的。这是因为从上面的通解表达式可知,绝对值 必然位于 之间。文末的参考文献中提供了关于基本解的坐标的范围的更严格的估计。当然,与 Pell 方程的情形不同,广义 Pell 方程可能没有解。

利用广义 Pell 方程的一个解 和 Pell 方程的基本解 得到同一个等价类中的全部解的方法,除了利用解的复合之外,还可以利用如下递推关系

其中,。这是因为 都可以对某一对实数 写成 的形式,而根据 Vieta 定理, 是方程 的两个实根,进而 都满足上述的二阶常系数递推关系。相较于解的复合,该递推公式有更少的乘法次数。

求解方法

Pell 方程和广义 Pell 方程的求解都可以基于连分数进行。

PQa 算法

本文讨论的算法都基于 PQa 算法,它可以用于求出特定的二次无理数的连分数展开。

设整数 满足 且不是完全平方数,以及 。那么,二次无理数

的连分数展开 可以通过如下 递推公式 求得:

进而, 的第 个渐近分数的分子和分母 由如下 递推公式 给出:

这些公式的正确性已经在连分数一文中得到证明。那里也说明了,因为二次无理数是 循环连分数,所以,三元组 最终将进入循环,算法总可以在有限步内终止。不妨设循环节的最小长度是 ,且循环的最早的起始位置是 ,则二次无理数的连分数展开可以写作

利用 PQa 算法解决 Pell 方程,需要建立如下结论:

定理

继续上述记号。设 ,则整数对 满足关系式

且它们的最大公因数 整除

这个结论提供了一种寻找方程 的解的方法。如果合理地选择 并选择 为同余方程 的解,那么通过对 执行 PQa 算法,直到找到 ,此时 就成为原方程的一组解。而且,如果 ,那么这样得到的解一定是本原解,也就是说 一定是互素的。

这个思想是解决 Pell 方程和广义 Pell 方程的核心。理解了这一思想后,下面就着手处理算法的一些细节,并证明所有的解都可以通过该方式得到。

Pell 方程

要解决 Pell 方程 ,只需要对 运行 PQa 算法,直到出现 ,此时 就是 Pell 方程的一组解(因为 此时就是 )。当然,对于 Pell 方程,对该过程可以进行更精确的描述。

首先,解一定出现在循环节的末尾处。上述过程相当于对 做连分数展开。对此,已经有 结论

此处,循环节长度为 ,且起始位置是第 项(下标从 开始)。而且,它的第 项余项等于 ,这说明 。因此,如果 是偶数,那么 就是 Pell 方程的一组非平凡解;如果 是奇数,那么 就是 Pell 方程的一组非平凡解。

接下来要说明,刚刚得到的这组解一定是基础解。这个结论基于两点理由:第一,Pell 方程的所有正整数解 对应的分数 都出现在 的渐近分数中,这就保证了 必定是 PQa 算法过程中的某个 ;第二,除了循环节末尾,不会再出现其他位置有 ,因为 的递推关系保证了它们的大小随着下标增加而增加,所以最小的正整数解(即基础解)必然出现在刚刚指明的位置。这两点理由可以分别从如下的两条定理得出:

定理

设方程 有正整数解 ,如果 ,那么 一定等于 的渐近分数。

定理

在对 运行上述 PQa 算法的过程中, 必然推出

综合本节的讨论可知,只要对 做连分数展开,亦即以 为起点做 PQa 算法,当首次得到 时,就到达了第一个循环节的末尾。此时,如果 是偶数,那么 就是 Pell 方程的基本解;否则, 是 Pell 方程的基本解。对于循环节长度 为奇数的情形,并不需要继续 PQa 算法到两倍的循环节处,马上就会说明 ,因而可以直接从 直接计算出 Pell 方程的基本解。Pell 方程所有其他解都可以通过 Pell 方程的基本解计算。

负 Pell 方程

根据上一节的讨论可知,负 Pell 方程的解也必然对应于 的渐近分数,而且只能出现在 处。这只能出现在循环节的末尾。因此,负 Pell 方程有解,当且仅当循环节长度 是奇数。当解存在时, 就是负 Pell 方程的基本解。它的求解方法和上一节是一致的。

利用前文对于 Pell 方程解的结构的证明相仿的思路,可以证明如下结论:

定理

设方程 有解,且基本解是 。那么, 的所有整数解都属于集合

特别地,满足 的整数解 正是 的基本解。

因为 是负 Pell 方程的最小正整数解,而 的所有正整数解都出现在集合

中,又因为这些正整数解必然对应 的在循环节末尾(前一位)处的渐近分数,而且渐近分数的分子和分母是严格单调递增的,所以对所有 总是有

在所有这些正整数解中, 为奇数时就是负 Pell 方程的解, 为偶数时就是 Pell 方程的解,两者交替出现。

判断负 Pell 方程是否有解,需要计算 连分数展开的循环节的长度,这并不容易计算,因此希望能够找到更简单的判断方法。但是,目前并没有条件简明、容易计算的判断方法 5。此处仅仅提供一个简单的结论。

定理

方程 有解,则 不能整除 不含有 型的素因子。反过来,如果 型的素数,那么方程必然有解。

如果 是合数,那么不含有 型素因子且没有平方因子也不能保证方程 有解,例如 就没有解。

范数为 ±4 的情形

接下来讨论方程 的解。此时,解的性态取决于 的大小。

有些情形是容易的。如果 ,那么 是偶数,因而 是方程 的解。其余的情形,必然有 同时是奇数或者同时是偶数。如果 同时是奇数,方程两侧对 取模就得到 。所以,如果 ,那么 只能同时是偶数,因而 是方程 的解。因此,除了 的情形,方程 的解都可以通过相应的(负)Pell 方程的解得到。

现在讨论 的情形,它不能简单地转化为已经解决的情形。为了找到基本解,可以对 应用 PQa 算法,当首次得到 时,就到达了第一个循环节的末尾。如果循环节长度 是偶数,那么 就是方程 的基本解;否则, 就是方程 的基本解。从 出发,可以得到方程 的所有解:

如果循环节长度 是偶数,所有这些都是方程 的解;否则,当 是奇数时, 是方程 的解,而当 是偶数时, 是方程 的解。

这个算法的正确性依赖于如下事实:

定理

设方程 有正整数解 。如果 ,那么, 一定是 的渐近分数。

定理

是正整数但不是完全平方数。二次无理数 的连分数展开具有形式

其中, 为循环节长度,且 对任何 都成立。

定理

。在对 运行上述 PQa 算法的过程中, 必然推出

定理

设方程 的最小正整数解为 。那么,它的全部解就是

综合这些事实,重复前文几节的论述,就可以说明用于解决方程 的上述算法的正确性。这些结果说明,方程 具有和方程 类似的简单的解的结构:它的所有解都可以通过其最小正整数解表示出来,而无需求解其它方程。

其实,方程 的所有解都可以在方程 的解中找到,因而从这个角度看,方程 更为基础。显然, 是方程 的解,当且仅当 是方程 的解。前文的分析指出,当 时,方程 的所有解都一定同为偶数,因而对应于 的解。

时,方程 的解 中, 一定是偶数,但是 可能是奇数。如果在方程 的最小正整数解 中, 是偶数,那么在所有解中 也一定是偶数,此时这些整数解和方程 的整数解一一对应;但是,如果在最小整数解 中, 是奇数,那么 的奇偶性将和 一致,交替变化,因而只有当 是偶数时,才对应于方程 的解。如果 的最小正整数解中 是奇数而且 的范数是 ,那么,对于这样的 有解,但是 无解。

时,方程 的解 可能同时是奇数,也可能同时是偶数。如果最小正整数解 已经同时是偶数,那么它的所有整数解也一定同时是偶数,所以总是对应于方程 的整数解。如果最小正整数解 同时是奇数,那么有如下结论:

定理

设方程 的最小正整数解是 。如果 同时是奇数,那么,,且该方程的整数解 同时是偶数,当且仅当

也就是说,方程 的每三个解中就有一个同时是偶数,它对应着 的整数解。这也说明,对于 ,方程 有解,当且仅当方程 有解。

到目前为止的讨论,已经足够计算实二次整数环的基本单位数。设 是正整数且不含平方因子。对于 的情形,只需要求出 的最小正整数解;而对于 的情形,只需要求出 的最小正整数解。当得到最小正整数解 时,对于 ,基本单位数就是 ;对于 ,基本单位数就是

一般情形

最后,讨论广义 Pell 方程的解法。

对于 的情形有一个简单的解法。前文的结论说明方程 的解 一定满足 等于 的某个渐近分数。而且,根据前文讨论的解的结构可知,每个基础解 都满足 小于等于相应的 Pell 方程 的基础解 。利用 PQa 算法中分母序列 的单调性可知,广义 Pell 方程的这些基础解一定出现在相应的 Pell 方程的基础解出现之前。由此,只需要对 运行 PQa 算法,直到 为偶数时为止,过程中对出现的每个 检验是否存在整数 使得

成立,如果成立,则记录 是一个最小正整数解。这个过程记录的所有 就是方程 的全部最小正整数解。利用 ,即相应的 Pell 方程的基本解,就可以根据求出的这些最小正整数解,生成广义 Pell 方程的所有解。注意,取决于循环节长度 是偶数还是奇数,上述的 可能是 或是

对于更为一般的 的情形,上述方法不再适用。首先,枚举 的所有平方因子 ,设 ,并枚举同余方程 的所有满足 的解 。然后,对 运行 PQa 算法,直到 或已经结束了一个循环节。在第二种情形,那么与该组 相关的方程的解并不存在。在第一种情形,需要进一步判断 与否。如果符号一致,那么 就是方程 的解。否则,它是方程 的解,而且当且仅当相应的负 Pell 方程的解存在时,才可以通过复合它与相应的负 Pell 方程的基本解来得到方程 的解。当完成对所有组 的遍历之后,就可以得到方程 在每个解的等价类中各恰好一个解,且该解为该等价类中的基本解或最小正整数解。利用它们和相应的 Pell 方程的基本解,可以生成该方程的所有整数解。这一算法称为 Lagrange–Matthews–Mollin 算法

该算法的正确性由如下定理保证:

定理

设方程 有整数解 。令 ,则 。设 是同余方程 的解且 ,并设整数 使得 成立。那么, 的一个渐近分数 ,且

该定理保证了方程的所有正解都存在于相应的二次无理数的渐近分数中。因为利用 PQa 算法计算渐近分数时,只要进入循环节,就一定能保证渐近分数总是正的。所以,只要枚举所有定理条件所允许的二次无理数,计算它的渐近分数直到一个循环节内,就能够找到一个解。因为在同一个二次无理数的渐近分数中出现的两个解,一定是等价的,所以只要得到第一个满足 的解,就可以停止继续后面的计算。与前面的所有算法都不同的是,此处满足条件的 可能出现在尚未进入循环节时。

习题

参考文献与注释

Footnotes

  1. 是完全平方数时,直接做因式分解可知,,因此所有解可以通过遍历 的因数得知。特别地,当 时,方程只有解 ;当 时,方程没有解。

  2. 有些中文文献也称它为第二型 Pell 方程。

  3. 即形如 的有理数。

  4. 注意,Pell 方程中基本解的定义与实二次整数环中的基本单位数的定义并不一致。首先,部分实二次整数环中的基本单位数 中的 是半整数,因而并非 Pell 方程的解。其次,同一个实二次整数环的基本单位数有四个,但是基本解只有一个,因为基本解要求 都是正数。

  5. 一个较为实用的判断方法和工具在 这里 及其参考文献。使得方程 有解的正整数 的列表是 OEIS A031396