判别式 − 23 有三个正等价类。怎样把两个类相乘,才能得到一个确定的第三类?直接将系数逐项相乘不会保持判别式,单凭“表示数的乘积又被某型表示”也不能辨认正类。Gauss 合成通过理想乘法确定运算,再用整数换元和同余把它算出来。
形式陈述
本页计算的对象和范围
固定负基本判别式 D ,即 D 平方自由且模四余一,或 D = 4 d ,其中 d 平方自由且模四余二或三。输入为两个判别式均为 D 的本原正定整数二元型 理路 整数二元二次型 Integral binary quadratic form · Proper equivalence of binary quadratic forms · 二元型的正等价 用整数三元组和行列式为一的整数换元研究二元型,区分本原型、本原表示与正等价,并把表示证书转换成首列换元和判别式同余。 Q 1 , Q 2 。
令 C D 为这些型的正等价类集合。使用型与定向理想的双射 理路 二元型与定向理想的对应 Binary quadratic forms and ideal classes · Oriented ideal form correspondence · 二元型与可逆理想 在负基本判别式的完整整数环中,将正定二元型的正等价类与理想类双向对应;从定向理想基计算型,再给出恢复原理想的显式标量,并核验反向定向及非最大子阶的边界。 ,把 [ Q i ] 送到完整整数环中的理想类 [ I i ] ,以 [ I 1 I 2 ] 所对应的型类定义
[ Q 1 ] ∗ [ Q 2 ] . 这称为 Gauss 合成 。下面的可执行版本先把首系数变互素,再使用共同中项,通常称为 Dirichlet 合成。
输出是该乘积类的唯一约化三元组,以及输入换元、同余拼接和最终约化的证书。该运算使 C D 成为有限 Abel 群;单位元与逆类分别为
奇 偶 Q 0 = { ( 1 , 1 , ( 1 − D ) / 4 ) , D 奇 , ( 1 , 0 , − D / 4 ) , D 偶 , [ ( a , b , c ) ] − 1 = [ ( a , − b , c ) ] . 这个群与 Cl ( O Q ( D ) ) 同构。任意非基本负判别式的合成需要改用相应子阶的可逆理想;不属于本页算法的输入合同。
互素首系数下的公式
先用正等价换元把输入写成
Q i = ( a i , b i , c i ) , gcd ( a 1 , a 2 ) = 1. 用整数中国剩余定理 理路 整数中国剩余定理 Chinese remainder theorem for integers 用最大公因数判定一般联立同余的相容性,并构造模最小公倍数唯一的解。 求
B ≡ b 1 ( mod 2 a 1 ) , B ≡ b 2 ( mod 2 a 2 ) . 两个模数的 gcd 是二,而 b 1 , b 2 同奇偶,故总相容,解模 2 a 1 a 2 唯一。令
A = a 1 a 2 , C = B 2 − D 4 A . 输出前的乘积型为
Q 3 = ( A , B , C ) . 最后用正定约化 理路 正定二元型约化 Reduction of positive definite binary quadratic forms · Gauss reduction of binary quadratic forms · 约化正定二元型 通过整数剪切和带符号交换将正定二元型化为唯一边界代表,输出总SL₂换元证书,并以判别式界穷尽全部正等价类。 得到规范三元组。原始输入是否约化不影响公式;关键是同一判别式和预处理后的首系数互素。
直觉
共同中项让两个理想用同一条方向
由 B − b i = 2 a i k i ,剪切 T k i 将 Q i 变成
Q ~ 1 = ( a 1 , B , a 2 C ) , Q ~ 2 = ( a 2 , B , a 1 C ) . C 确为整数:B 2 − D 分别被 4 a 1 , 4 a 2 整除,而二者最小公倍数为 4 A 。
固定正虚部的 D ,令 η = ( B + D ) / 2 。两个型的理想现在有共同的第二基向量:
I 1 = a 1 Z + η Z , I 2 = a 2 Z + η Z . 乘积由 A , a 1 η , a 2 η , η 2 生成。因为 gcd ( a 1 , a 2 ) = 1 ,Bézout 系数 理路 整数欧几里得算法 Euclidean algorithm for integers 反复使用带余除法计算最大公约数的有限算法。 使 η 本身也是 a 1 η , a 2 η 的整数线性组合;而
η 2 = B η − A C . 所以乘积精确等于
I 1 I 2 = A Z + η Z = I Q 3 . 这条生成元等式认证了公式,而不只验证新型恰好有判别式 D 。
表示数的乘法可以直接展开
若共同中项下的两个表示为
z 1 = a 1 x + η y , z 2 = a 2 u + η v , 则
z 1 z 2 = A X + η Y , X = x u − C y v , Y = a 1 x v + a 2 y u + B y v . 对两边取范数并除以 A ,得到
Q ~ 1 ( x , y ) Q ~ 2 ( u , v ) = Q 3 ( X , Y ) . 这解释了“合成”如何把两个表示相乘。若输入先经过换元,须先把表示坐标移到共同中项的两组基中,再使用这条式子。
例子与边界
完整算出 D = − 23 的乘法表
约化已经列尽三个类,记为
e = [ ( 1 , 1 , 6 ) ] , A = [ ( 2 , 1 , 3 ) ] , A ― = [ ( 2 , − 1 , 3 ) ] . 先算 A 2 。两个原始首系数都为二,先把第二个型用 S 变成 ( 3 , − 1 , 2 ) 。然后求
B ≡ 1 ( mod 4 ) , B ≡ − 1 ( mod 6 ) , 可取 B = 5 。两输入分别剪切为 ( 2 , 5 , 6 ) 、( 3 , 5 , 4 ) ,乘积型为
( 6 , 5 , 2 ) . 再执行
( 6 , 5 , 2 ) → S ( 2 , − 5 , 6 ) → T 1 ( 2 , − 1 , 3 ) , 故 A 2 = A ― 。最终约化矩阵为 S T 1 = ( 0 − 1 1 1 ) 。
再算 A A ― 。将第二个型 ( 2 , − 1 , 3 ) 交换成 ( 3 , 1 , 2 ) ,共同中项可取 B = 1 ,得到
( 6 , 1 , 1 ) → S ( 1 , − 1 , 6 ) → T 1 ( 1 , 1 , 6 ) . 所以 A A ― = e 。三类彼此不同,群律又已由理想对应保证,完整乘法表为
∗
e
A
A ―
e
e
A
A ―
A
A
A ―
e
A ―
A ―
e
A
于是 C − 23 ≅ C 3 。这里既有穷尽代表的证据,也有群结构和生成元阶的证据。
不满足互素条件时,CRT 还不够
若对 ( 2 , 1 , 3 ) 自乘时直接令 A = 4 , B = 1 ,两条模四同余虽都满足,却得到
C = 1 + 23 16 = 3 2 . 输出甚至不是整数型。首系数不互素时,两个 4 a i 的最小公倍数不再等于 4 a 1 a 2 ,前面的整除论证失效。更一般的合成公式确实可以处理这些输入,但本算法的修复方式明确:先换元得到互素首系数,再执行已证明的公式。
任意乘积恒等式不能定义正类合成
若一条恒等式写成 Q 1 Q 2 = Q 3 ( X , Y ) ,也能写成
Q 1 Q 2 = ( a 3 , − b 3 , c 3 ) ( X , − Y ) . 右边两个型可能并不正等价。D = − 23 的 A 与 A ― 已给出这种真实区别,所以仅寻找一个双线性表示恒等式,不足以在二者间选择。固定复嵌入、正定向和理想乘法,才指定了正确的类。
本原表示也不一定在乘法后保持。例如 D = − 4 的 x 2 + y 2 在 ( 1 , 1 ) 本原表示二,两份表示相乘时 X = 0 , Y = 2 ,得到四的非本原表示。类乘法是良定义的,坐标是否互素仍须单独检查。
推论与应用
为什么总能把首系数变互素
固定本原型 Q 和正整数 N 。我们要找 gcd ( x , y ) = 1 且 gcd ( Q ( x , y ) , N ) = 1 的向量,再把它补成 S L 2 ( Z ) 矩阵的第一列。
对每个 p ∣ N ,在模 p 下至少有一个向量使 Q 非零。事实上,若 ( 1 , 0 ) , ( 0 , 1 ) , ( 1 , 1 ) 三处都为零,就依次得到 a = c = b = 0 ( mod p ) ,与本原性矛盾。对每个素因子选一对这样的坐标,再用 CRT 拼成
x ≡ x 0 ( mod M ) , y ≡ y 0 ( mod M ) , M = ∏ p ∣ N p . 还需要全局坐标互素,不能只检查模 N 。先在 y 0 + M Z 中选一个非零整数 y 。对每个整除 y 却不整除 M 的素数 q ,额外要求 x ≡ 1 ( mod q ) ;这些模数与 M 互素,CRT 再次给出 x 。若 p ∣ y 且 p ∣ M ,原先 Q ( x 0 , 0 ) ≢ 0 ( mod p ) 已保证 x 0 ≢ 0 ( mod p ) 。因此没有素数同时整除最终 x , y 。
这就得到所需本原向量。用 Bézout 系数补成首列矩阵后,新首系数为 Q ( x , y ) ,与 N 互素。若 N = 1 ,直接用 ( 1 , 0 ) 即可。计算两型合成时取 N = a 1 ,只改第二个型便够。
这个证明给出有限构造;也允许程序依次枚举本原向量直到成功。枚举方式的终止有了依据,但这里不声称它按输入位数具有多项式运行时间,避免把正定约化的速度误当成整个预处理的速度。
四种选择为什么都不影响输出类
先看输入代表。由定向理想对应,正等价换元只将 I i 改成 λ i I i ,所以乘积改成 ( λ 1 λ 2 ) I 1 I 2 ,理想类不变。这同时覆盖了寻找互素首系数时不同本原向量、不同 Bézout 补列的选择。
再看共同中项。两个 CRT 解相差 2 A ℓ ;相应乘积型恰相差剪切 T ℓ ,因为中项由 B 变为 B + 2 A ℓ ,末项按相同判别式被唯一决定。它们属于同一正类。
最后看乘积理想的正定向基与约化过程。前者只改变型的正等价代表,后者无论使用哪张正确换元证书,都必须落到唯一的约化三元组。因此输入换元、补列、CRT 解及末端约化的全部自由选择都已被覆盖。
理想乘法的结合律、交换律和单位元通过双射直接传给型类。单位理想 O 的范数型就是上面的 Q 0 ;公式 I Q I Q ― = a O 给出逆类 ( a , − b , c ) 。不需要仅凭有限算例猜测群律。
类数相同与群结构相同是两个问题
有限约化代表只回答“有几个类”,还须合成才能决定元素的阶。例如 D = − 84 的全部代表为
( 1 , 0 , 21 ) , ( 2 , 2 , 11 ) , ( 3 , 0 , 7 ) , ( 5 , 4 , 5 ) . 后三者都与各自中项反号的型正等价:中项为零时直接相同,| b | = a 时一次剪切恢复,a = c 时一次 S 恢复。所以每个非单位类都为二阶,群是 C 2 × C 2 ,而非 C 4 。
还可实际检查两个不同非单位类的乘积:( 2 , 2 , 11 ) 与 ( 3 , 0 , 7 ) 取共同中项六,得到 ( 6 , 6 , 5 ) ;再经 S , T 1 得 ( 5 , 4 , 5 ) 。这与四元群表一致,也检验了偶判别式及 a = c 边界。
完整的 二元型类证书练习 将 − 23 的九格表、理想基转换和 13 的指定型表示放在同一份可复算输出中,并迁移到 − 20 与 − 84 。
参考资料