Дискретная математика:
логика, группы, графы, фракталы

Акимов О.Е.

2.4. Алгебраические системы на базе групп

Разложение многочлена на неприводимые множители

Рассмотрим самый общий случай. Пусть дано некоторое поле многочленов GF(q), где q = pn, n — степень модуля q, а p — характеристика. Обозначим через g1(x), g2(x), ..., gq–1(x) различные неприводимые многочлены над полем чисел GF(p), отвечающие примитивным корням: c1, c2, ... , cq –1. Утверждается, что существует единственно возможное разложение многочлена xq–1 – 1 на множители gi(x); или, что одно и то же, каждый элемент ci является корнем многочлена xq–1 – 1; или, наконец, исходный приводимый многочлен можно представить в виде произведения порождающего g(x) и проверочного h(x) многочленов:

Здесь c — примитивный корень порождающего многочлена g(x), а для проверочного многочлена h(x) берутся те степени c j, которые не вошли в многочлен g(x). Как видим, действия с многочленами во многом схожи с действиями над числами. Приводимый многочлен вида xq–1 – 1 играет роль составного числа a, его примитивные корни c1, c2, ... , cq –1 ассоциируются с простыми сомножителями p1, p2, ..., pk, а последняя формула разложения на множители аналогична каноническому разложению составного числа a = p1n1 p2n2 ....pknk. Многочлены g(x) и h(x) играют роль двух делителей числа a = g · h. Корни исходного многочлена играют роль базиса, по которому многочлены g(x) и h(x) могут быть разложены. Таким образом, теория полей многочленов смыкается с теорией линейных пространств. Покажем, как это осуществляется практически.

Если c — примитивный корень многочлена g(x), то

g(c) = g0 + g1c + g2c2 + ... + gncn = 0.

Выразим степени корней cn и cn+1 через линейную комбинацию младших степеней корней c, c2, ..., cn–1 (gn = 1):

cn = g0 + g1c + g2c2 + ... + gn–1cn–1

cn+1 = g0c + g1c2 + g2c3 + ... 

... + gn–1(g0 + g1c + g2c2 + ... + gn–1cn–1).

Следовательно, все степени ci при i > n линейно выражаются через первые n степеней; число таких комбинаций не превышает величину q – 1. Следует также иметь в виду, что не только g(c) = 0, но и 

g(c2) = g(c3) = ... = g(cq–1) = 0.

Пример 1. Рассмотрим поле многочленов GF(q) по модулю неприводимого многочлена g(x) = x2 + x + 1. Пусть примитивным корнем многочлена g(x) является корень c, тогда g(c) = c2 + c + 1 = 0. Так как q = 23 = 8, то циклический порядок корня c равен q – 1 = 7. Все корни степени i > 2 выражаются через c и c2, при этом g(c) берется за модуль:

c3 = (c3 + c + 1) · 1 + (c + 1) = c + 1,

c4 = (c3 + c + 1) · c + (c2 + c) = c2 + c,

c5 = (c3 + c + 1) · c2 + (c3 + c2) = c2 + c + 1,

c7 = (c3 + c + 1) · c3 + (c4 + c3) = c2 + 1.

Проверим, что числа c, c2 и c4 действительно являются корнями многочлена g(x) = x2 + x + 1:

g(c) = c3 + c + 1 = c + 1 + c + 1 = 0,

g(c2) = c6 + c2 + 1 = c2 + 1 + c2 + 1 = 0,

g(c4) = c12 + c4 + 1 = c5 + c4 + 1 = 0.

Отсюда порождающий многочлен g(x) раскладывается на следующие примитивные множители: 

g(x) = x2 + x + 1 = (x + c)(x + c2)(x + c4),

на долю же проверочного многочлена h(x) приходятся все остальные степени корня c:

h(x) = (x + c3)(x + c5)(x + c6)(x + c7).

Таким образом, исходный приводимый многочлен x7 + 1 может быть разложен каноническим образом в расширенном поле примитивных корней (аналог поля комплексных чисел):

x7 + 1 = (x + c)(x + c2)(x + c3)(x + c4)(x + c5)(x + c6)(x + c7),

и неканоническим, где в скобках стоят простые сомножители (аналог поля действительных чисел):

x7 + 1 = (x3 + x + 1)( x3 + x2 + 1)(x + 1),

а также в виде двух сомножителей:

x7 + 1 = g(x)h(x) = (x3 + x + 1)( x4 + x2 + x + 1).

Если в роли модуля будет выступать порождающий многочлен g(x) = x3 + x2 + 1, то его примитивный корень d даст несколько отличный цикл высших степеней корней, а именно:

d3 = d2 + 1, d4 = d2 + d + 1, d5 = d + 1, d6 = d2 + d,

во всем же остальном процедура не изменится.

Пример 2. Составим полную таблицу неприводимых многочленов gi(x) поля вычетов GF(24) по модулю g(x) = x4 + x + 1 над числовым полем GF(2) (табл. 2.82).

Таблица 2.82

Заполнение таблицы неприводимых многочленов начнем с исходного многочлена. Так как

g(x) = (xc)(xc2)(xc4)(xc8),

против степеней c, c2, c4 и c8 можно писать многочлен g(x). Далее, выразим все степени ci через c, c2 и c3, как это было сделано в предыдущем случае. Чтобы найти все остальные неприводимые множители, необходимо поступить следующим образом. Возьмем произвольный корень a = c14 = c3 + 1. Тогда

ga (x) = (xa)(xa2)(xa4)(xa8).

Так как

a2 = c28–15 = c13 = c3 + c2 + 1,

a4 = c56–45 = c11 = c3 + c2 + c,

a8 = c112–105 = c7 = c3 + c + 1,

можно написать

ga(x) = (xc14)(xc13)(xc11)(xc7) =

= [x2 – (c14 + c13)x + c12] · [xc11] · [xc7] =

= (x2c2x + c12) · (xc11) · (xc7) =

= [x3 – (c11 + c2)x2 + (c12 + c13)xc8] · (xc7) =

= (x3c9x2 + cxc8) · (xc7) =

= x4 – (c9 + c7)x3 + (c + c)x2 – (c8 + c8)x + c15.

Следовательно, против корней c7, c11, c13 и c14 ставим неприводимый многочлен ga(x) = x4 + x3 + 1. Затем берется следующий неизвестный корень и предыдущая процедура повторяется. Так происходит последовательное заполнение всей табл. 2.82. Проверка правильности нахождения состоит в выполнении основного тождества:

x15 + 1 = (x4 + x3 + 1)(x4 + x + 1)(x4 + x3 + x2 + x + 1)(x2 + x + 1)(x + 1).

Пример 3. Рассмотрим поле GF(32) по модулю g(x) = x2 + 1 над полем GF(3). Здесь многочлен g(x) является неприводимым, но он не является и порождающим или образующим многочленом поля, поскольку степени его корня дают единицу уже при c4, а не 8: 

c2 = (c2 + 1) · 1 + 2 = 2, 

c3 = (c2 + 1) · c + 2c = 2c

c4 = (c2 + 1) · c2 + 1 = 1, 

c5 = c, c6 = 2, c7 = 2c, c8 = 1.

Аналогичная ситуация возникает и в числовых полях, например, в поле GF(7) элемент 3 является образующим, так как его степени порождают все элементы поля: 

31 = 3,     32 = 2,    33 = 6,     34 = 4,    35 = 5,     36 = 1, 

тогда как элемент 2 уже не будет образующим; в самом деле, его степени не дают элементы 3, 5 и 6: 

21 = 2,     22 = 4,    23 = 1,     24 = 2,    25 = 4,     26 = 1. 

Поэтому исходным порождающим элементом нужно выбрать другой неприводимый многочлен, например, g(x) = x2 + x + 2. При составлении полной таблицы неприводимых многочленов (табл. 2.83) для случая поля GF(3) действуем аналогично предыдущему примеру. Представителями классов вычетов по модулю 3 могут быть как числа 0, 1, 2, так и числа –1, 0, 1. Отсюда возникают две формы записи неприводимых многочленов с двумя проверочными соотношениями:

x8 + 2 = (x2 + x + 2)(x2 + 2x + 2)(x2 + 1)(x + 1)(x + 2),

x8 – 1 = (x2 + x3 – 1)(x4x – 1)(x2 + 1)(x + 1)(x – 1).

Таблица 2.83

Полные таблицы неприводимых многочленов и линейные комбинации корней для полей GF(52), GF(33) и GF(25) приведены, соответственно, в табл. 2.84, 2.85 и 2.86.

Таблица 2.84

Таблица 2.85

Таблица 2.86

Для практического задания по теме составления полной таблицы неприводимых многочленов преподаватель может менять порождающий многочлен g(x); g(x) стоит в первых строчках приведенных таблиц; в этом случае происходит перегруппировка строк.


 
  


Hosted by uCoz