Skip to content

算法Algorithm

正定二元型约化

Reduction of positive definite binary quadratic forms · Gauss reduction of binary quadratic forms · 约化正定二元型

通过整数剪切和带符号交换将正定二元型化为唯一边界代表,输出总SL₂换元证书,并以判别式界穷尽全部正等价类。

(24,83,72) 与 (2,1,3) 的系数看起来相差很远,实际上只差三步整数换元。约化把前者送到后者,同时留下一个行列式为一的矩阵。更重要的是,每个正等价类只有一个约化代表,所以比较两个整数三元组就能判定原来的两个型是否同类。

形式陈述 ​

输入、输出与边界规则 ​

输入是整数二元型 Q=(a,b,c),满足 a>0、D=b2−4ac<0。本原与非本原型均可约化,内容在过程里保持。

称正定型约化,若

|b|≤a≤c,b≥0 当 |b|=a 或 a=c.

等价地,它满足以下两种情况之一:

−a<b≤a<c,或0≤b≤a=c.

最后的边界规则属于定义;少了它,同一个类会有两个列在边界上的代表。

算法输出约化三元组 Qred 和 U∈SL2(Z),保证

Qred(v)=Q(Uv).

每个正等价类中恰有一个满足上述规则的三元组。因而 Q∼Q′ 当且仅当它们的约化输出相同。唯一的是三元组,不是换元矩阵;型自身可能有非平凡的保型矩阵。

两种换元足够完成下降 ​

使用

Tk=(1k01),S=(0−110).

直接代入得到

(a,b,c)Tk=(a,b+2ak,ak2+bk+c),(a,b,c)S=(c,−b,a).

从 U=I2 开始反复执行:

  1. 取 k=⌊(a−b)/(2a)⌋,做剪切 Q←QTk,更新 U←UTk。此时 −a<b≤a。
  2. 若 a>c,做 Q←QS、U←US,回到第一步。
  3. 若 a<c,直接输出;若 a=c,只在 b<0 时再做一次 S,随后输出。

所有比较、除法取整和矩阵更新都可使用整数完成。矩阵按执行顺序乘在右侧,因为 (QU)V=QUV。

直觉

剪切整理倾斜,交换缩小首系数 ​

剪切不改变第一条格基方向,而是给第二条方向加上第一条的整数倍。中项因此以 2a 为步长变化;选定的 k 把它送入半开区间 (−a,a]。交换则让当前较短的第二条方向成为第一条,并用一个负号保持定向。

每次真正回到循环的交换都满足新首系数 c<a。它仍是正整数,因为正定型在 (0,1) 的值为正。正整数不可能无限严格下降,所以算法终止。最后 a=c,b<0 的交换不再开启循环,只用于选定边界的正号。

把三步计算连成一个证书 ​

对 Q=(24,83,72),判别式为 832−4⋅24⋅72=−23。算法给出

换元 当前三元组 当前总矩阵
起点 (24,83,72) I2
T−2 (24,−13,2) (1−201)
S (2,13,24) (−2−110)
T−3 (2,1,3) (−251−3)

总矩阵行列式为 6−5=1。读者可直接展开

Q(−2X+5Y,X−3Y)=2X2+XY+3Y2.

约化型在 (2,1) 表示 13,乘总矩阵得到原坐标 (1,−1);回代 24−83+72=13,表示证书也被完整保存。

例子与边界

边界重号为什么必须处理 ​

(1,−1,6) 和 (1,1,6) 都满足 |b|≤a≤c,但前者经 T1 就变成后者。规则在 |b|=a 时只保留 b≥0,消除这次重复。

另一种重复发生在 a=c:(2,−1,2)S=(2,1,2)。两个型都在同一条圆弧边界上,故还必须规定 a=c 时保留非负中项。这里的“圆弧”只是一种几何解释,算法与证明本身不需要复上半平面。

D=−3 的 (1,1,1) 和 D=−4 的 (1,0,1) 也在合同范围内。它们有较多保型换元,但都只输出一个约化三元组。不能为了避免对称性而把这些边界型排除。

正定性负责哪一步 ​

对不定型 (1,0,−2),第二个系数方向的值 c=−2 已不是正整数。“交换后首系数下降”无法构成正整数终止证明。Pell 方程中的无限对称性应使用不定型或周期连分数的方法,本算法不接受这种输入。

也不能把矩阵 (0110) 偷换成这里的 S。普通无符号交换行列式为 −1,会反转定向;正等价需要同时改变中项符号。

推论与应用

最小值定位所有可能的首列 ​

下面证明约化代表唯一,而不只证明算法停下来。对任何约化 Q=(a,b,c) 和非零整数 (x,y),有

Q(x,y)≥a(x2−|xy|+y2)+(c−a)y2+(a−|b|)|xy|≥a.

最后一步来自

x2−|xy|+y2=(|x|−|y|)2+|xy|≥1.

所以最小非零整数值恰为 a,由 (±1,0) 取得。逐项看等号,还得到全部最小向量:

  • a<c 时,仅有 (±1,0);
  • a=c 且 0≤b<a 时,另有 (0,±1);
  • a=b=c 时,再增加 (1,−1),(−1,1)。

这张短表同时控制普通情形、方格对称和六角对称。

唯一性:等价矩阵的第一列没有自由选择 ​

设两个约化型 Q,Q′ 正等价。它们表示相同整数,最小正值给出 a′=a。若 Q′=QU,U 的第一列必须属于上面的最小向量表。

当第一列是 (ε,0) 时,行列式条件迫使

U=(εq0ε),ε=±1.

于是 b′=b+2aεq。两边都在 (−a,a],只能有 b′=b;再由相同判别式得到 c′=c。这已经处理全部 a<c 情形。

若 a=c、0≤b<a,剩下的可能首列是 (0,ε)。此时

U=(0−εεs),b′=−b+2aεs.

半开区间限制迫使 s=0,从而 b′=−b,c′=a。但 a′=c′ 的边界规则要求 b′≥0,所以只有 b=0 才能发生,仍得到同一个三元组。

最后考虑 a=b=c。矩阵

R=(0−111)

保持 Q=a(x2+xy+y2),且 Rj(1,0)、0≤j<6 正好列出六个最小向量。给定 U,取 V=Rj 与它具有相同第一列,则 V−1U 的第一列为 (1,0),且 QU=QV−1U。问题回到第一种情况,仍只有 Q′=Q。唯一性全部证完。

由判别式上界列尽所有类 ​

对约化型,

|D|=4ac−b2≥4a2−a2=3a2.

因此

1≤a≤⌊|D|/3⌋,−a≤b≤a,c=b2−D4a.

逐个枚举 a,b,检查 c 是整数、约化边界及所需的内容条件,便得到全部代表。存在性保证没有漏类,唯一性保证没有重类;两个部分缺一不可。

对 D=−23,只有 a=1,2。当 a=1,边界给 b=1,c=6;当 a=2,只有 b=±1,c=3 通过整除检查。全部代表恰为

(1,1,6),(2,1,3),(2,−1,3).

三者各是不同正等价类。仅数出三个类尚未决定乘法,Gauss 合成会给出这三个类的完整运算表。

计算成本与验证成本分别说清 ​

直接枚举的 (a,b) 候选数为 O(|D|);这是按判别式的数值计数,不能称为按输入位数的多项式枚举。类数本身也会随 |D| 增长。

单个型的约化快得多。归一化后 |b|≤a,交换所得首系数为

anew=c=b2+|D|4a.

若 a≥|D|,便有 anew≤a/2。进入 a<|D| 后,若还需交换,则至多再交换一次就能约化:当 c≤|D|/2 时,新的归一化型自动满足末系数不小于首系数;当 c>|D|/2 时,|b|≤a<2c,交换后的归一化至多补一次剪切,末系数为 a 或 a+c−|b|≥c。相等时再执行终止的符号规则即可。

所以从首系数 a0 开始,算术轮数为 O(1+log⁡(a0+1))。每轮大整数除法及矩阵乘法的位成本另计。若只验证给出的结果,检查 det⁡U=1、三个系数的换元恒等式和约化边界便已足够;无需信任求解程序的内部路径。

参考资料
  • Andrew V. Sutherland,18.783, Problem Set 9,2017,Problem 2(c)–(f),印刷 p.4;Problem 3(i)–(k),p.6:规范边界、有限枚举以及归一化后的缩小界。本文用最小向量及边界保型矩阵独立补齐代表唯一性的证明。
  • Brian Conrad,Class groups for imaginary quadratic fields,p.1:正定约化代表与 a≤|D|/3 的范围;注意该讲义采用与本页相反的型判别式符号。
关系图谱11 个相邻概念 · 2 类关系

拖动节点调整位置。

显示关系

显示:依赖

  1. 前置三跳
  2. 前置二跳
  3. 前置一跳
  4. 当前条目
  5. 后续一跳
  6. 后续二跳
  7. 后续三跳
文字版关系按与当前条目的最短距离分组
类型化关系