Факторизация гауссовых чисел
Напомним, что гауссовыми называются комплексные числа, у которых действительная и мнимая части являются целыми числами. Иными словами, это комплексные числа а+bi, у которых вещественная (а) и мнимая (b) части представляют собой целые числа. Вот примеры гауссовых чисел:
2, 1+2i, i, -i, 1+i, 1-i, 1+7i, 1+555555i, 9999+444i.
На комплексной плоскости гауссовы числа образуют решетку всех точек с целыми координатами. Гауссовы числа называются в честь К. Ф. Гаусса, который обратил на них внимание еще в 1832 году в работе о биквадратичных вычетах. Именно Гаусс понял важность изучения этих чисел и установил их основные свойства.
Как оказалось, множество гауссовых чисел, рассматриваемое с обычными операциями, образует кольцо, являющееся, конечно, подкольцом кольца (даже поля) комплексных чисел. Кольцо целых гауссовых чисел можно рассматривать как расширение кольца целых чисел Z путем присоединения i, поэтому это кольцо обозначается Z[i].
В этом кольце делителями единицы являются лишь +1, -1, i и -i. Так что множество делителей единицы в кольце гауссовых чисел конечно. А потому в этом кольце имеет смысл понятие простого элемента, а, значит, можно выполнять разложение элементов этого кольца на простые множители. Нетрудно доказать, что кольцо целых гауссовых чисел евклидово. Поэтому с точностью до делителей единицы разложение на простые множители в нем единственно. Так что кольцо гауссовых чисел (как и всякое евклидово кольцо) является гауссовым, или факториальным.
Нормой комплексного числа называется квадрат модуля, т.е. квадрат длины отрезка, соединяющего комплексное число с началом координат. Иными словами, это сумма квадратов вещественной и мнимой частей комплексного числа:
N(a+bi) = (а+bi)(а-bi) = a2 +b2.
Нечетное простое число р является простым гауссовым числом тогда и только тогда, когда оно дает в остатке 3 при делении на 4: р = 3 (mod 4). Если же р = 3 (mod 4), то р не является простым в кольце целых гауссовых чисел. Не является простым в кольце целых гауссовых чисел и число 2.
Давайте теперь найдем несколько разложений гауссовых чисел на простые множители.
Factorlnteger[
5
-
51
]
=
{(
-
1.1
},{
1
+
i,I},{
1
+
2
i,
1
},{
2
+
i,
1
}}
FactorInteger[
3
+
1
]
=
{{
-
i,
1
},(
1
+
i,
1
},{
1
+
2
1.1
)}
FactorInteger[
-
90
-
180I
]
=
{{
1
+
i,
2
},{
1
+
2
i,
2
},{
2
+
i,
1
},{
3.2
}}
Factorlnteger[
-
182
-
1261
]
=
{{
1
+
i,
3
},{
2
+
i,
3
},{
7.1
}}
FactorInteger[
3
+
I5]
=
{{
1
+
i,
1
},{
4
+
i,
1
}}
Factorlnteger[
777
+
1111
]
=
{{
-
1.1
},{
1
+
i,
1
},{
1
+
6i
,l},{
2
+
i,
2
},{
3
,l},{
6
+
i,l}}
Factorlnteger[
153
+
1
374
]
=
{{
-
i,l},{!
+
4
i,
1
},{
2
+
i,
1
},{
4
+
i,
1
},{
8
+
7i
,l}}
Factorlnteger[
7
+
81
]
=
{{
7
+
8i
,l}}
Число 7+8 i, как видим, оказалось простым. Заметьте, что Mathematica сама поняла, что разложение нужно выполнять в кольце целых гауссовых чисел. Но как разложить на простые множители в кольце целых гауссовых чисел натуральные числа? Ведь, например, FactorInteger[41] = {{41.1) }.
В подобных случаях, т.е. когда в качестве аргумента функции FactorInteger выступает рациональное вещественное число, а разложить аргумент нужно на простые гауссовы числа, область разложения нужно указать явно. Для этого необходимо с помощью второго аргумента функции FactorInteger установить опцию Gaussianlntegers равной True. Вот несколько примеров, в которых показано, как это делается.
Factorlnteger[
41
,GaussianIntegers
>
True
]
=
{{
-
1.1
},{
4
+
5i
,l},{
5
+
4i
,l}}
FactorInteger[
5
,GaussianIntegers
>
True
]
=
{{
-
i,l},{!
+
2i
,i},{
2
+
i,
1
}}
Factorlnteger[
2
,GaussianIntegers
>
True
]
=
{{
-
i,
1
},{
1
+
i,
2
}}
Factorlnteger[
11
,GaussianIntegers
>
True
]
=
{{
11.1
}}
FactorInteger[
13
,GaussianIntegers
>
True
]
=
{{
-
i,l},{
2
+
3i
,l},{
3
+
2i
,l}}
Как видите, ничего сложного!