定义
高斯整数是集合(Z[i] = { a + bi | a,b in Z}, where i^2 = -1),换言之,高斯整数是实部和虚部都为整数的虚数。由于高斯整数在乘法和加法下交换,它们形成了一个交换环。
在复平面上,高斯整数是二维复平面上的整点。
高斯整数的模是它和自己共轭复数的乘积,即(N(a+bi) = (a+bi)(a-bi)=a^2+b^2),它的模可以表示为两个数字的平方和,所以不能表示为(4k+1, where k in Z)。
带余除法
也称欧几里得除法,高斯整环(Z[i])是欧几里得环,所以它具有很多在整数域和多项式域上成立的特性,比如辗转相除,裴蜀定理,主理想,(Euclid's lemma) ,唯一分解定理,中国剩余定理。
(Euclid's lemma:)
如果将高斯整数(a)写为(a=bq+r),有$N(r) le frac{N(b)}{2} $。
(Proof.)
令 (frac{a}{b}=x+yi),令(- frac{1}{2} le x-m le frac{1}{2}, - frac{1}{2} le y - n le frac{1}{2}),令(q = m + ni),由(a=bq+r),(r = b(x - m + (y -n)i)),故$N(r) le frac{N(b)}{2} $。
高斯素数
高斯整数形成了一个唯一分解域。高斯整数只有当且仅当它是一个素数时才不可约,高斯整数中(Z[i])的素数称为高斯素数。
-
高斯素数的共轭复数依然为高斯素数。
-
高斯素数的相伴复数依然为高斯素数。
[forall a + bi in Z[i], -a + bi in Z[i] ] -
作为高斯素数的整素数(p)是(4k+3)型素数,其余的素数可以写为(2)个共轭高斯素数的乘积
-
一个高斯整数(a+bi)是高斯素数当且仅当以下两个条件之一成立:
-
(a,b)中一个为(0),且另一个数字为(4k+3)型素数
若(p)为(4k+3)型素数,存在(d),(d)不等于单位元,也不等于(p),满足(d | p),则(dar d | p),由于(dar d)为整数,有(d ar d = p),得出(p=a^2+b^2),(a^2+b^2 equiv 0,1,2(mod 4)),与(p)为(4k+3)型素数矛盾。
-
(a,b)都非(0),且(a^2+b^2)是一个(4k+1)型素数或者(2)
令(u=a+bi),则(uar u=p),(p)为一个(4k+1)型素数,若存在存在(d),(d)不等于单位元,也不等于(u),(d | u),则(dar d | p),由于(dar d)为整数,有(d ar d = p),得出(d=u),与假设矛盾。
-
唯一分解
由于高斯整环是一个唯一分解域,所以每一个高斯整数都可以写为一个单位元和若干高斯素数的乘积,这种分解是唯一的(忽略共轭和相伴)。
最大公约数
两个高斯整数的最大公约数并不唯一,加入(d)是(a)与(b)的最大公约数,则(a,b)的最大公约数为(d, -d, id, -id)。
若(a = i^k prod p_m ^ { u_m}, b = i^n prod p_m ^ {mu_m}),则其中一个最大公约数为
可以根据带余除法里的结论,进行辗转相除,时间复杂度为(O(log(n)))。
Complex div(Complex a, Complex b) {
long double mo = b.norm();
Complex c = a * b.conj();
long double r = 1. * c.r / mo, i = 1. * c.i / mo;
return Complex(round(r), round(i));
}
Complex gcd(Complex a, Complex b) {
if (b.r == 0 && b.i == 0) return a;
Complex c = div(a, b);
return gcd(b, a - b * c);
}
同余和剩余系
给定一个高斯整数(z_0),对于高斯整数(z_1, z_2),如果它们的差是(z_0)的整数倍,即(z_1 - z_2 = k z_0, k in Z),那么称(z_1)与(z_2)模(z_0)同余,写作(z_1 equiv z_2 (mod z_0))。
模(z_0)同余是一种等价关系,它将高斯整数分成若干个等价类,称为剩余类,剩余类写作(Z/z_0Z),剩余类形成了一个交换环。
费马二平方和定理
(p)是一个素数,(p)可以写成两个平方数的和,当且仅当(p=2)或(p equiv 1 (mod 4))。
充分性:令(p=a^2+b^2),对任意一个整数(x),有(x^2 equiv 0,1,2(mod 4)),故(a^2+b^2 equiv 0,1,2(mod 4)),由于(p)是素数,所以(p = 2)或(p equiv 1(mod 4))。
必要性:当(p=2),(2=1^2+1^2);当(p)为(4k+1)型素数,由于(p)不是高斯素数,所以可以进行分解,即(p = u ar u), (u=a+bi),故 (p=a^2+b^2)。
分解(4k+1)型素数
(p)为(4k+1)型素数,如果存在(k^2 equiv -1(mod p)),则(p | (k + i)(k - i)),由于(p=u ar u),有(u | (k+i)),故(u=(k+i,p)),即可将(p)分解为两个平方数的和。
由于有一半的数在模(p)下存在平方剩余,随机一个(t),检验(t^{frac{p-1}{2}} equiv -1(mod p)),令(k=t^{frac{p-1}{4}}),时间复杂度为(O(Tlog(p))),(T)为测试次数。
构造 (a^2+b^2=n)的方案
- 首先将(n)分解为(n = prod p_m^{e_m})的形式
- 将(2)分解为((1+i)(1-i));将(4k + 1)型素数分解为(u ar u),其中 (u) 为高斯素数;(4k+3) 型素数不可分解
-
[n = prod p_m ^{e_i}, 0 le e_i$$,由$ n=u ar u $,故需要将$n$中的高斯素数分成两部分,使得两部分共轭。考虑素数$p_m$,对于$4k+1$型素因子,分解为$u^{e_m} ar u^{e_m}$,左边可以放$k$个$u$,$e_m- k$个$ar u$;对于$4k+3$型素因子,因为不能进行分解,所以左右两边的数量应该一样多,即$4k+3$型的素数$p_m$出现的次数必须为偶数。 ]
令(f(n)=frac{1}{4}sum_{x,y in Z}[x^2+y^2=n]),除以(4)是因为由(4)个单位元。由于素因子可以分开考虑,所以该函数为积性函数。
- (f(2^k)=1)
- (f(p^e)=e+1),当p为(4k+1)型素数
- (f(p^{2e+1})=0),(f(p^{2e})=1),当(p)为(4k+3)型素数