Главная » Просмотр файлов » Д. Кнут - Искусство программирования том 2 (3-е издание) - 2001 (Часть 2)

Д. Кнут - Искусство программирования том 2 (3-е издание) - 2001 (Часть 2) (1119454), страница 22

Файл №1119454 Д. Кнут - Искусство программирования том 2 (3-е издание) - 2001 (Часть 2) (Д. Кнут - Искусство программирования том 2 (3-е издание) - 2001 (Часть 2)) 22 страницаД. Кнут - Искусство программирования том 2 (3-е издание) - 2001 (Часть 2) (1119454) страница 222019-05-09СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 22)

[Введение к примитивным полнномам.[ Установить с( +- 8сб(сопс(и).сонг(е)), используя вспомогательный алгоритм дли вычисления наиболыпего общего делителя в В. (По определению сощ(и) представляет собой наибольший обпшй делитель козффициентов и(х).) Заменить и(х) полиномом и(х)/сопс(и) = рр(и(х)); точно так же заменить е(х) на рр(е(х)) . Е2.

[Псевдоделение.[ Вычислить г(х) с использованием алгоритма К. [Нет необходимости вычислять поливом-частное 9(х),) Если г(х) = О, перейти к шагу Е4. Если деб(г) = О, заменить е(х) постоянным полиномом "Г и перейти к шагу Е4. ЕЗ. [Сделать остаток примитивным.) Заменить и(х) на е(х) и заменить е(х) на рр(г(х)). Вернуться к шагу Е2. (Это — "евклидов шаг", аналогичный другим рассмотренным нами алгоритмам Евклида.) Е4.

[Присоединение содержания.) Алгоритм завершается, выдав ответ 6 ° е(х). 5 алгоритма Евклида для полиномов над полем, описанного ранее в этом разделе. Получается неожиданно сложная последовательность. и(х) О() 1,0,1,0,-3, -3,8,2, -5 3,0,5,0, — 4, — 9,21 3,0,5,0,-4,-9,21 --0,,0-- (13) 9 '% З 9 25 ' ' 25 111 9 441 2331Я юОДВЗЯЬ 25' ' 25 Фттз 559! 233150 1ОЗЬОО ИВВ14 32 ПЛЗ ' бзз! 543539225 Для улучшения этого алгоритма можно свести и(х) и о(х) к нормированным полиномам на каждом шаге, чтобы удалить обратимые множители, слишком усложняющие коэффициенты.

В действительности получится алгоритм Е нэд рациональными числами: и(х) о(х) 10 103 1 —— ЫЬО 4553 1 1,0,1,0, -3, -3,8,2, -5 1 — —— 25 49 'ш' гз 5150 4553 (14) 11 в (13), и в (14) последовательность полиномов, полученная при помощи алгоритма Е над целыми числами, по сути, та же, что и в (12). Единственное отличие состоит в том, что полиномы умножаются на некоторью рациональные числа.

Каким бы ни был полипом, будь то 5х — х + 3, -Вх + Ох — - или х — -х + гь, 4 2 Ь 4 1 2 1 4 ! 2 вычисления остаются теми же. Но любой алгоритм, использующий рациональную арифметику, имеет тенденцию к более медленной работе, чем "всецело целый"' алгоритм Е, поскольку рациональная арифметика обычно требует большего количества вычислений целых 8сд на кзждом шаге при полиномах больших степеней. Поучительно сравнить (12), (13) и (14) с (6), где мы определяли 8сд тех же полиномов и(х) и и(х) по модулю 13 со значительно меньшимн усилиями. Поскольку 4(п) и 4(и) не кратны И, того факта, что йсд(и(х), о(х)) = 1 шод 13, достаточно для доказательства, что и(х) и о(х) взаимно просты над кольцом целых (и, ыедовательно, нед полем рациональных чисел).

Мы вернемся к этому сохраняющему время наблюдению в конце раздела 4.6.2. Алгоритм Коллинза. Остроумный алгоритм, в целом превосходящий алгоритм Е и, кроме того, предоставляющий информацию о поведении алгоритма Е, был разработан Джорджем Э.

Коллинзом (Сеог8е Е. Сой1пь) [,УАСМ 14 (1967), 128-142] и впоследствии улучшен В. С. Брауном ( тт", 8. Вготтп) и Дж. Ф. Траубом (Л. Г. Тгаи11) [ХАСМ 18 (1971), 505-514; см. также %. $. Вгочп, АСМ Тгалз. МагЬ. Бойчзхе 4 (1978), 237-249]. Он позволяет избежать вычислений примитивных частей на шаге ЕЗ, вместо чего производится деление на элемент Я, о котором известно, что он является множителем г(х). Алгоритм С (Поиск наибольнтего общего делитиелл над областиью единственного разлоотсенил).

В этом алгоритме используются те же предположения о входных и выходных данных, что и в алгоритме Е. Он имеет то достоинство, что при поиске наибольших общих делателей коэффициентов требуется выполнять меньше вычислений. С1. (Сведение к примитивным полиномам.) Как и на шаге Е1 алгоритма Е, установить И <- 8со(сопз(и), сопз(и)) и заменить (и(х), и(х)) на (рр(и(х)),рр(е(х))).

Установить д с- л е- 1. С2. (Псевдоделение.) Установить 5 +- дей(и) — абеб(и). Вычислить г(х) с использованием алгоритма В. Если г(х) = О, перейти к шагу С4. Если Оей(г) = О, заменить е(х) постоянным пачиномом "1" и перейти к шагу С4. СЗ, (Подгонка остатка.) Заменитыюлином и(х) на и(х) и и(х) на г(х)/дала. (В этот момент все коэффициенты г(х) кратны дйз.) Затем установить д +- з(и), Ь е- Ь' "дз и вернуться к шагу С2. (Новое значение Ь будет в области Я, даже если 5 >1.) С4. (Присоединение содержания.] Вернуть в качестве ответа Ы рр(е(х)). $ Если применить этот алгоритм к рассмотренным ранее полиномам (9), то получится такая последовательность результатов в начале шага С2.

и(х) д )з и(х) 3,0,5,0, — 4,-9,21 — 15,0,3,0, -9 65, 125, -245 -9326, 12300 1, О, 1, О, -3, -3, 8, 2, -5 3,0,5,0,-4,-9,21 — 15,0, 3„0, -9 65, 125, -245 1 1 3 9 (15) -15 25 65 169 дз' и1(х) =из(х)дз(х)+дзй,'из(х), 9з' из(х) = из(х)дз(х) + дз/зз"из(х) 94 из(х) = из(х)чз(х) + дзлз'и (х) пз <пз; и4 < пз~ пз < пз (16) н т. д. Процесс прекращается, когда нзч.з = ое8(из+з) < О. Покажем, что полиномы из(х).

из(х), ...имеют коэффициенты из Я, а именно — что множитель д Ь,' де.чит все коэффициенты остатков, Кроме того, покажем, что все значения Лз принадлежат Я. Доказательство весьма запутанно„и его легче понять, рассмотрев конкретный пример. Предположим, как и в (15), что п1 = 8, из = 6, из = 4, и| = 2, пз = 1, пз — — О, так что дз = 5з = 5з = 2; дз = 5з = 1.

Запишем из (х) = азх + азх" + ". + ае, В конце алгоритма г(х)/дйз = 260708, Эта последовательность полиномов состоит нз целых кратных полнномов в последовательности, полученной с помощью алгоритма Е. Вопреки тому факту, что полиномы не сведены к примитивному виду, коэффициенты остаются в разумных пределах благодаря приводящему множителю на шаге СЗ. Для анализа алгоритма С и доказательства его корректности рассмотрим полученную с его помощью последовательность полиномов из(х), из(х), из(х), ..., где из(х) = и(х) и из(х) = и(х). Пусть 5 = пз — ну~1 для у > 1, где и = Ое8(иу), н пусть 91 — — /зз — — 1, д = 4(иу), Ь =- Ьз," ' д ' ' дл» у > 2.

Тогда нз(т) = Ьох~+Ььх + +Ьо,, нь(х) = етх+ео, ио(х) = Ль твк что /зт = 1, 62 = Ььз, йз — сз/Ьь, Ьз = ьрзьо/с4. Рассьтотрнм табл. 1 с учетом принятых обозначений. Для определенности будем считать, что коэффициенты полиномов целые. Имеем Ььент(х) = из(х)йт(х) + из(х); так что„если умножить строку Аь на Ьь и вычесть подходящие кратные строк Вт, В» и Вь (соответствующие коэффициентам Ет(х)), можно получить строку Сь. Если также умножить строку Аз на Ььз и вычесть кратные строк Во, Вь и Вз, можно получить строку Сз, Аналогично получим сзтиз(х) = из(х)оз(х) + Ьоцнз(х).

Умножив же строку Вз на со~, вычтя целые кратные строк Сь, Сз и Сз и разделив на Ьь, получим строку Вз. Для доказательства того, что мз(х) имеет целые коэффициенты, рассмотрим матрицу Аз Ат Ао В» Вз Вз в Во Указанные операции со матрицы М в ао 0 0 ат ао О аз ат ао 0 0 0 О О О Ьо 0 0 ь, ь, о ь ь ь аь аз аз ао аь аз ат ао аь Ьз 62 Ьт ь ь ь ь,ь,ь, ь ь ь 0 ЬьЬь строками и перестановки строк приводят к преобразованию Ьз Ьз Ьт Ь, Ьз Ь, Ьь Ьз Ьз ь ь ь 0 сз сз О Ось 0 0 0 О 0 0 Ьоооо о Ьтьоо 0 0 Ьзьт Ьо 0 0 Ьзьзьт Ьо 0 сз ст со О 0 сз сз сд со 0 сз сз сз ст со ь(2 ат т(о каким образом была получена матрица М' из М, имеем Ьз ° Ьз ° Ьзь ' (с3/Ьоь) ° ась Мо х г(ез Мо если Мо я Мо — любые квадратные матрицы, полученные в результате выбора вось- ми оютветствующих столбцов из М н М'.

Например, выберем семь первых столбцов и столбец, содержащий 4; тогда аз ат аь аь аз аз аз О аз ат аь аь а4 0 аз ат аь аь Ьь Ьз Ьз 62 Ьт ь, ь. ь. ь, ь, 0 Ьь Ьь Ьз Ьз 0 0 Ьо Ьь 64 0 0 0 Ьь Ьь что ь(т — целое. Ьоз Ьоз ° Ьь з(сз/Ьь) с)ес 4 3 — хьо сз т(т . Поскольку 6осо Ь О, это доказывает, ь(2 и Ио. Аналогично целыми являются Вз в. Вз Вт Сз С в В соответствии с тем аз ат ао 0 аз ат 0 О аз ь ь ь О ЬьЬь О 0 Ьо 0 0 0 О 0 0 Ьь Ьь 64 О Ьоьь О ОЬ» 0 О 0 О О 0 ООО 000 000 0 0 6» О 0 0 аз ат аз аз аз аз ь о ь, ь, ь ь ь ь ь ьз аз ао аз ат Ьо 0 ь о ь о Ьз Ьт Таблица 1 КОЭФФИЦИЕНТЫ, ПОЯВЛЯКЗСЦИЕСЯ В АЧГОРИТМЕ О Заменить строкой Умножить на Имя строки Ь«з ь,' Ьвз ь,' Ьз С, С» Сз Сг С! Св С»/Ь«В 643/Ьвв сз»(ьв Вз Вг В! Вв »СЗЬв/сз 4ЬЫ Е! Ев ег«4йгьб В общем, так же можно показать, что и +4(х) имеет целые коэффициенты.

Характеристики

Список файлов книги

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6367
Авторов
на СтудИзбе
309
Средний доход
с одного платного файла
Обучение Подробнее