Главная » Просмотр файлов » 1626435697-9d9ede204f9baad60159c2d6531787c7

1626435697-9d9ede204f9baad60159c2d6531787c7 (844297), страница 63

Файл №844297 1626435697-9d9ede204f9baad60159c2d6531787c7 (Хопкрофт, Ульман 1979 - Построение и анализ вычислительных алгоритмов) 63 страница1626435697-9d9ede204f9baad60159c2d6531787c7 (844297) страница 632021-07-16СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

а,1=[011010101]. В строке 6 находим, что [О!1010101]е[!001100!] (т. е. 213Ф153 в десятичной записи) равно 32589, тогда иак 2'»=32768, Поэтому цикл в строках 5 — 7 добавляет 1 к 213, что дает 214, или 1011010110] в двоичной записи. С] Теорема 8.1. Алгоритм 8.1 находит «юкос число [а» а»... а„1, что [а»аэ... аэ]Ф[р,рэ...

рэ! 2'»"э — 5 и Ы 5([рэ р,...рэ]. Д о к а з а т е л ь с т в о. Доказательство проводится индукцией по й. Базис, т. е. случай А=1, тривиален в силу строки 1. Для проведения шага индукции положим С=[с»сэ...сэж], Р,=1р,р,... ...рэж] И Р»=[рц»+~ рм»+а ..р»1. ТОГда Р=1рэр» .р»1=Р»2М»+Р» По предположению индукции СР,=2" ' — 5, где Оч 5(РИ В силу строки 30=Ы» э(».. л!»А] определяется равенством Π— С2 »1» С (Р»2»!»+Р,), (8.3) Так как р,=1, то Р~)2А1»-' и, значит, С(2АI». Отсюда следует, что 0(2»», и потому для представления 0 достаточно 2й битов. Рассмотрим произведение РР (Р»2»~»+Р»)О, равное в силу (8.3! РЭ = СР,.2" +СР,2™» — (СР,2»" + СР,]'. (8.4) Подставив 2"-' — 5 вместо СР, в (8,4) и сделав некоторые алгебраические упрощения, получаем Р0 2»э-» (52А1» СР )» (8.5) Разделив (8.5) на 2" э видим, что 2'" '= — +Т, (8.6) 2»"» где Т=(52»!' — СР»)»2 — э~ — 'э.

По предположению индукции и в силу неравенства Р»(2»~э имеем 5(2»!». Так как С(2»!» и Р,(2эlэ, то 0КТ(2»+э. в.я эмножаниа н даланив палых чисел В строке 4 А=[а»аь ..а»1=( О/2»-»3. Далее, ~в~ Р~в так что из (8.6) вьггекает 2»»> — '~Р~ — ~> — — Р=2» ' — Т вЂ” Р> 2»-» 1 2»-11 2»-» > 2*» ' — 2»+' — 2".

Р ~ — ~ = 2'» ' — Ю', где Оч=З'(2»+'+2». Так как Р>2» ', то прибавление к ) О/2»-' ~ числа, не превосходящего 6, дает число, удовлетворяющее предположению индукции для й. Поскольку именно это и делается в строках 5 — 7, то шаг индукции выполнен. С) Теорема 8.2, Существует такая постоянная с, что /г' (и)( ~сМ (и). Д о к а з а т е л ь с т в о.

Достаточно показать, что алгоритм 8.! тратит Оа(М (и)) времени, На строку 2 уходит Я (й/2) битовых операций. Строка 3 состоит из возведения в квадрат и умножения, что требует соответственно М(й/2+1) и М (й+2) времени, а также вычитания, расходующего Оз(/») времени. Заметим, что умножение на степени числа 2 не тратит битовых операций; мы считаем, что разряды сомножителей просто занимают новые положения, т.

е. они будто бы сдвигаются. В силу нашего предположения о М справедливо неравенство М(й/2+1)~(»/,М(й+2). Кроме того, М(й+2) — М(й)= =Оэ(й) (см., например, равд. 2.6) и, значит, сложность строки 3 ограничена величиной '/,М(й)+с'й для некоторой постоянной с'. Сложность строки 4 равна, очевидно, Ов(я). Может показаться, что цикл в строках 5 — 7 требует три умножения, но можно проделать необходимые вычисления за одно умножение (а,а,...а»)»(р,р,...р»1 и несколько сложений и вычитаний не более чем 2й-разрядных двоичных целых чисел. Поэтому сложность строк 5 — 7 ограничена величиной М(Й)+с'Й для неко. торой постоянной с'.

Объединяя все эти сложности, заключаем, что К(й)-Ж Я+ ~ М Я+с,й (87) для некоторой постоянной с,. Мы утверждаем, что найдется такая постоянная с, что /т(я) = (сМ(й). Можно выбрать с так, чтобы было с>Я(1)/М(1) н с> >5+2с,. Докажем наше утверждение индукцией по й. Базис, т. е. случай й=1, очевиден. Шаг индукции получается в силу (8.7), по- 3»г гл. а. двифыатичвскив опвплции скольку К(й)=асм й)+ТМ(й)+ей, (8.8) Так как М(й/2~ЧеМ(й) в силу нашего предположения о М, а оценка й(М(й) очевидна, можно переписать (8.8) в виде м (й) ~ ( о + ч + сз) М (й). (8.9) Поскольку с)5+2сь то из (8.9) следует, что Я(й)(сМ(й).

П Ясно, что алгоритмом 8.2 можно вычислить ПР с и значащими двоичными цифрами, если Р имеет столько же цифр, при этом неважно, где расположена запятая. Например, если '/з(Р(1 и Р имеет и битов, можно очевидным образом изменить масштаб и представить 1!Р как 1 и последующие л — 1 битов дробной части. Теперь покажем, что время В(л), необходимое для возведения в квадрат целого числа размера л, не превышает по порядку времени К (л) обращения целого числа размера л.

Метод основан на тождестве Р' = — Р. (8.10) Р Р+1 Приведем алгоритм, использующий (8.10) с подходящим изменением масштаба. ') Процедура ОБРАТНОЕ определена в алгорнтме ЗЛ только для целых чисел, длнна которых равна степени числа 2. Обобшенне на любые целые числа должно быть очевндным: добавляем нули н, если надо, изменяем масштаб. Заа Алгоритм 8.2. Возведение в квадрат с помощью обратных величин Вход. и-разрядное целое число Р в двоичной записи. Выход. Двоичная запись числа РУ. Метод.

1. Применяем алгоритм 8.1 для вычислении А=~ 2ьч ЧР ~. Для этого добавляем 2а нулей к Р, применяем процедуру ОБРАТНОЕ ') для вычисления1 2ая ЧР2зя ) и сдвигаем результат. 2. Аналогично вычисляем В=( 2'"-Ч(Р+1) 1'. 3. Полагаем С=А — В. Заметим, что С=2'"-Ч(Рв+Р)+Т, где 1Т) (1. Слагаемое Т возникает из-за того, что отбрасывание знаков при вычислении А и В может привести к ошибке вплоть до 1. Тая как 2ав з(.Ра+Р(2зв то 2ев+')С -2'" ' 4. Вычисляем Р=1 2а"-ЧС~ — Р. 5.

Пусть Я вЂ” четыре последние бита числа Р. Увеличиваем или уменьшаем Р на минимально возможную величину так, чтобы последние четыре бита результата совпали с последними четырьмя битами в ссз. ьз в.е имножвнив и деление целых чисел В $2м)[1110] ] [100100100100] С = А — В = [10110100]. Далее, Тогда О=[2 7С] — Р =[101101(0] †[1)]=[10101001]. Таким образом, О=169 — квадрат числа 13, и на шаге 5 не нужна никакая коррекция.

П Теорема 8.4. Найдется такая постоянная с, что Я (п)(сй (и). До к а з а тел ь с т в о. В алгоритме 8.2 трижды вычисляются обратные к числам, задаваемым цепочками длины не более Зп. Вычитания на шагах 3 и 4 требуют Ов (и) времени,а на шаге 5 выполняется работа фиксированного объема, не зависящего от и. Следовательно, В(п) (~3)с (Зп)+с,п (8.11) для некоторой постоянной с,. Таким образом, В (п)(27К (п)+сьп.

Так как Й (и)'= и, то, полагая с=27+с„получаем нужное неравенство. П Теорема 8,5. М(п), Я(п), 0(п) и З(п) равны с точностью до постоянных множителей. Д о к а з а т е л ь с т в о. Мы уже показали, что )с (п)(с,М (и) и З(п)(сЯ(п) для некоторых постоянных с, и с,. Легко вывести Теорема 8.3. Алгоритм 8.2 вычисляет Рз. Д о к а з а т ел ь с т в о, В силу способа, которым отбрасываются цифры на шагах 1 и 2, можно ручаться лишь за то, что С = рт+ — + Т, где ~ Т ( ( 1. Так как 2'"-~(С(2'"+1 и ошибка в С заключена между — 1 и 1, то связанная с ней ошибка в 24" НС не превосходит ! — "-'— '-'!=!':-'! Так как С' — С ь2т-ь, то зта ошибка не превосходит 4. Отбрасывание цифр в строке 4 может увеличить ошибку до 5.

Таким образом, (Р' — Р~(5. Следовательно, вычисление последних четырех цифр в Рт на шаге 5 гарантирует, что 0 корректируется так, что становится равным РД П Пример 8.2. Путь п=4 и Р=(1101). Тогда А — [ 2мй[1101] ] [100111011000] гл. к лпиомптичнскнн опяплцми неравенство М (п)я-сз5 (п), заметив, что АВ ~ !(А+ В)' — А' — Вз). Таким образом, М, )с н 5 равны с точностью до постоянных множнтелей.

Когда мы обсуждаем деление и-разрядных двоичных чисел, мы фактически подразумеваем деление числа, содержащего до 2п батов, на число, содержащее в точности п битов, причем ответ содержит не более п+1 битов. Очевидно, что )с(и~Р(и), так что М(п)( (с,с,Р (п). Более того, с помощью тождества А/В=Ап(1/В) можно показать, изменяя подходящим образом масштаб, что для некоторой постоянной с Р (и) ( М (2п)+ й (2п)+си. (8.!2) Поскольку Я(2п)(с,М(2п) н, как легко показать, М(2и~4М(п), можно переписать (8.12) в виде Р(п)(4(! +с,) М (п)+сп. (8.13) Так как М (и))и, то в силу (8.13) справедливо неравенство Р (и)«„ (с,М (п), где с.=4+4с,+с. Итак, мы доказали, что все рассматрнваемые функции заключены между дМ(п) н еМ(и) для некоторых положительных постоянных д н е.

П Следствие. Деление 2п-разрядного двоичного целого числа на и- разрядное можно выполнить за время Ов (п !оЕ п 1ой 1ой п). Доказательство. В силу теорем 7.8 н 8.5. П В.З. УМНОЖЕНИЕ И ДЕЛЕНИЕ ПОЛИНОМОВ Вся техника предыдущего раздела переносится на арнфметнческне операции над полнномамн от одной переменной. В этом разделе функции М(п), Р(п), К(и) н 5(и) обозначают времена, требуемые соответственно для умножения, деления, обращения н возведения в квадрат полнномов степени и. Как н раньше, мы предполагаем, что а'М (и))М (аи)~аМ(и) для а- 1 н подобные неравенства справедлнвы н для других функций.

Под "обратным" к полнному р(х) степени и мы понимаем полянам ( х*"/р(х) ~т). Р(и) — этовремя нахождения полннома( з(х)/р(х) ~, где р(х) имеет степень п, а з(х) — степень, не превосходящую 2и. Заметим, что подобно тому, как в предыдущем разделе мы изменяли ') По аналогии с обозначением для пелыз чисел для обозначения частного от деления полиномов употребляется зфункпия диез. Инымн словами, если р(х) ие постоянная, то ! з(х)/р(х) ) — зто единственный полипом о(х), для которого з(х)=р(х)о(х)+г(х) и СТ(г(х))<СТ(р(х)).

в.а. умнОжение и деление полинОмОЕ масштаб целых чисел с помощью степеней числа 2, можно "изменять масштаб" полиномов, умножая и деля их на степени переменной х. Так как результаты настоящего раздела очень похожи на резуль- таты для целых чисел, изложим в деталях только один из них: алгоритм обращения полнномов, аналогичный алгоритму 8.1 для целых чисел. Алгоритмы для полиномов в какой-то мере проще со- ответствующих алгоритмов для целых чисел — в основном благо- даря тому, что в степенных рядах в отличие от целых чисел нет пере- носов. Поэтому в алгоритмах для полиномов не надо корректиро- вать младшие значащие разряды, как это требовалось, например, в строках 5 — 7 алгоритма 8.1. Алгоритм 8.3.

Обращение полиномов Вход. Полином р(х) степени л — 1, где и — степень числа 2 (т. е. р(х) имеет 2' членов, где 1 — некоторое целое число). Выход. Обратный полинам ( хео */р(х) ~. Мел!Од. На рис. 8.2 приведена новая процедура /й-1 ОБРАТНЫЙ ~~ а;х', 1=о где й — степень числа 2 и ай,ФО. Эта процедура вычисляет ~! а;хй Заметим, что при А=1 аргументом будет постоянная а„а ее обратным — другая постоянная 1/а,. Предполагается что каждую операцию над коэффициентами можно выполнить за один шаг, и поэто- /й-1 ргоседпге ОБРАТНЫЙ ( ~~Р ~а,х': 1=0 1. И й=! 1Ьеп ге1нгп 1/а е(ее Ьеи!и / й-1 2.

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

Тип файла
DJVU-файл
Размер
5,53 Mb
Тип материала
Высшее учебное заведение

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

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