Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
K[x].doc
Скачиваний:
17
Добавлен:
01.07.2025
Размер:
2 Мб
Скачать
☆

§ 11. Алгоритм Евклида

В этом параграфе будет изложен эффективный алгоритм нахождения НОД(f, g) двух многочленов f(x) и g(x) 0.

С

f(x) = g(x)q0(x) + r0(x), d(r0) < d(g),

g(x) = r0(x)q1(x) + r1(x), d(r1) < d(r0),

r0(x) = r1(x)q2(x) + r2(x), d(r2) < d(r1),

… … … … …

rs–2(x) = rs–1(x)qs(x) + rs(x), d(rs) < d(rs–1),

rs–1(x) = rs(x)qs+1(x) + 0

Алгоритм Евклида

лева приведена вычислительная процедура последовательного деления многочленов с остатком, называемая алгоритмом Евклида. Вычисления обрываются, как только будет получен нулевой остаток rs+1(x) = 0. Это обязательно случится, т.к. в противном случае возникает бесконечная убывающая цепочка

d(g) > d(r0) > d(r1) > … > d(rs) > d(rs+1) > … ,

что невозможно.

Связь алгоритма Евклида с задачей нахождения НОД(f, g) устанавливает следующая

Теорема (Евклида). НОД(f, g) =

Доказательство. Если r0(x) = 0, т.е. g(x) | f(x), равенство НОД(f, g) = g следует из доказанного в прошлом параграфе свойства 30 наибольшего общего делителя.

Если же r0(x) 0, т.е. g(x) f(x), то по свойству 40 наибольшего общего делителя последовательно получаем из алгоритма Евклида:

(f, g) = (f(x)–g(x)q0(x), g(x)) = (r0 , g) = (r0(x), g(x)–r0(x)q1(x)) = (r0 , r1) = … = (rs–2 , rs–1) =

= (rs–2(x)–rs–1(x)qs(x), rs–1(x)) = (rs , rs–1) = rs(x).

Теорема доказана.

Примеры: 1. Найти НОД(x6 + 2x2 – 3, x2 – 1).

Таким образом, НОД(x6 + 2x2 – 3, x2 – 1) = x2 – 1.

2. Найти НОД(x2 + 2x – 3, x4 – 3x3 + x2 + 1).

Для того, чтобы применить алгоритм Евклида, вначале переставим местами многочлены: НОД(x2 + 2x – 3, x4 – 3x3 + x2 + 1) = НОД(x4 – 3x3 + x2 +1, x2 + 2x – 3).

Таким образом, НОД(x4 – 3x3 + x2 +1, x2 + 2x – 3) = = –28x + 28 = –28(x – 1). Учитывая, что наибольший общий делитель многочленов определён с точностью до пропорциональности, можно записать проще:

НОД(x4 – 3x3 + x2 +1, x2 + 2x – 3) = x – 1.

3. НОД(x2 – 1, x4 – 3x3 + x2 + 1, x + 1) = (?!) = НОД(x2 – 1, НОД( x4–3x3+x2+1, x+1)).

П

_ x4 – 3x3 + x2+ 1 | x + 1

x4 + x3 x3 – 4x2 + 5x – 5

_ _ –4x3 + x2 + 1

–4

x3 – 4x2

_ 5x2 + 1

5x2 + 5x

_ –5x + 1

–5x – 5

6

ри нахождении НОД( x4–3x3+x2+1, x+1) получен остаток 6, на который в последующем делении многочлен x + 1, очевидно, разделится нацело. Поэтому для экономии времени это деление не производим. Значит, НОД(x4–3x3+x2+1, x+1) = 1, и искомый наибольший общий делитель равен НОД(x2–1, 1) = 1.

Попробуйте получить этот результат, используя формулу НОД(f, g, h) = НОД(НОД(f, g), h) и почувствуйте разницу.

Упражнения: 1. Найдите НОД(x3 + 1, x2 – 1), НОД(x4 + 1, x2), НОД(x4 + 1, x3 – 1).

2. Докажите, что НОД(fh, gh) = НОД(f, g)h.

3. Верно ли, что НОД(f 2, g 2) = НОД(f, g)2 ?

4. Чему равен НОД(x2007 – 1, x223 – 1) ?

5. Докажите, что НОД( + 1, + 1) = 1 при k m.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]