Главная » Просмотр файлов » Т. Кормен, Ч. Лейсерзон, Р. Риверст, К. Штайн - Алгоритмы. Построение и анализ (2013)

Т. Кормен, Ч. Лейсерзон, Р. Риверст, К. Штайн - Алгоритмы. Построение и анализ (2013) (1162189), страница 226

Файл №1162189 Т. Кормен, Ч. Лейсерзон, Р. Риверст, К. Штайн - Алгоритмы. Построение и анализ (2013) (Т. Кормен, Ч. Лейсерзон, Р. Риверст, К. Штайн - Алгоритмы. Построение и анализ (2013)) 226 страницаТ. Кормен, Ч. Лейсерзон, Р. Риверст, К. Штайн - Алгоритмы. Построение и анализ (2013) (1162189) страница 2262019-09-19СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

Было высказано предположение о том, что вычисления ясс( можно выполнить пакетно, накапливая произведение нескольких величин х; в строке с последующим использованием этого произведения при вычислении ясс) вместо величины х,. Приведите подробное описание того, как можно было бы реализовать эту идею, почему она работает и какой размер пакета можно было бы выбрать для достижения максимального эффекта при обработке 13-битового числа и. Задачи 31.1. Бинарный алгоритм ноиска наибольшего общего делителя На большинстве компьютеров операции вычитания, проверки четности (нечетное или четное данное число) и деления пополам выполняются быстрее, чем вычисление остатка. В этой задаче исследуется бинарный алгоритм ноиска наибольшего общего делиазелл (Ъ(паху ясб а(яопЗЪзп), позволяющий избежать вычисления остатков, которые используются в алгоритме Евклида.

зь Докажите, что если и а, и Ь четны, то ясс((а, 6) = 2 ясс((а/2,6/2). б. Докажите, что если а нечетно, а 6 четно, то пес)(а,Ь) = ясс1(а, Ь/2). а Докажите, что если и а, и 6 нечетны, то ясс)(а, Ь) = ксс1((а — 6)/2,Ь). г, Разработайте эффективный бинарный алгоритм поиска ксб для целых чисел а и 6, где а > 6, время работы которого равно 0(1яа). Предполагается, что на каждое вычитание, проверку на четиость и деление пополам затрачивается единичное время. 1027 Тлаеа 21. Теоретико-чиелоеые алгоршпаы 31.2. Анализ битовых операций в алгоритме Евклида гь Рассмотрим обычный, "карандашом на бумаге", алгоритм деления а на Ь, в результате выполнения которого получаются частное д и остаток г.

Покажите, что в этом методе требуется выполнить 0((1 +!8 о) 18 Ь) битовых операций. б. Определим функцию 1л(а,Ь) = (1+!ба)(1+186). Покажите, что количество битовых операций, которые выполняются процедурой Епс12п при сведении задачи вычисления величины 8со(а,Ь) к вычислению величины 8сс)(Ь, а шос) 6), не превышает с(1л(а, Ь) — 1л(6, а шод 6)) для некоторой достаточно большой константы с > О. в. Покажите, что выполнение алгоритма Епсщп(а, 6) требует в общем случае 0(12(а, Ь)) битовых операций и 0()72) битовых операций, если оба входных значения являются 17-битовыми числами. 31.3. Три алгоритма вычисления чисел Фибоначчи В этой задаче выполняется сравнение производительности работы трех методов вычисления и-го числа Фибоначчи Е„ при заданном и.

Считаем, что стоимость сложения, вычитания или умножения двух чисел независимо от их размера равна 0(1). а Покажите, что время работы прямого рекурсивною метода вычисления числа Е„на основе рекурреитного соотношения (3.22) увеличивается экспоненциально с ростом п. (См., например, процедуру Р!в на с.

814.) б. Покажите, как с помощью технологии запоминания вычислить число Р„за время 0(п). в. Покажите, как вычислить число Г„за время 0(1я и), используя только сложения и умножения целых чисел. (Указаниег рассмотрите матрицу (01) и ее степени.) г. Предположим теперь, что для сложения двух ~З-битовых чисел требуется время 9(!3), а для их умножения — время й(~32). Чему равно время работы перечисленных выше алгоритмов с учетом такой стоимости выполнения элементарных арифметических операций? ЗЕ4. Квадратичные вычеты Пусть р — нечетное целое число.

Число а Е е'" является квадратичным выр четам (ццадгайс гез)дпе), если уравнение х = а (шой р) имеет решение относительно неизвестного х. а. Покажите, что существует ровно (р — 1)/2 квадратичных вычетов по модулю р. 1020 Часть РИ. Избранные темы б.

Если число р — простое, то определим снмяел Лежандра (Ьейепгйе зугпЬо1) (Я) для а Е а.' как равный 1, если а — квадратичный вычет по модулю р, и — 1 р р в противном случае. Докажите, что если а б Ур, то = а(Р )г (упос) р) . р/ Разработайте эффективный алгоритм, позволяющий определить, является ли заданное число а квадратичным вычетом по модулю р. Проанализируйте время работы этого алгоритма.

в. Докажите, что если р — простое число вида 4Ь+ 3, а а — квадратичный вычет в Е„', то величина а"+' шог[ р равна квадратному корню а по модулю р. Сколько времени требуется для поиска квадратного корня квадратичного вычета а по модулю р? д Разработайте эффективный рандомизированный алгоритм поиска неквадратичного вычета по модулю, равному произвольному простому числу р. Другими словами, нужно найти элемент Жр, который не является квадратичным вычетом.

Сюлько в среднем операций требуется выполнить этому алгоритму? Заключительные замечания В книге Нивена (Х(реп) и Цукермана (Епс1сеппап) [263) содержится прекрасное введение в элементарную теорию чисел. У Кнута (КппгЬ) [209) приведено подробное обсуждение алгоритмов, предназначенных для поиска наибольших общих делителей, а также других основных теоретико-числовых алгоритмов. Бач (ВасЬ) [29) и Ризель (К(ейе!) [293) представили более современный обзор вычислительных приложений теории чисел. В статье Диксона (Вйхоп) [90) содержится обзор методов разложения н проверки простоты чисел.

В трудах юнференцин под редакцией Померанца (Рошегапсе) [278) содержится несколько превосходных обзорных статей. Позже Бач (ВасЬ) и Шаллит (БЬайй) [30) представили прекрасный обзор основ вычислительной теории чисел. В книге Кнута [209]з обсуждается история возникновения алгоритма Евклида. Он встречается в трактате "Начала" греческого математика Евклида, опубликованном в 300 году до н.э., в седьмой книге — в теоремах 1 и 2. Описанный Евклидом алгоритм мог быть получен из алгоритма, предложенного Евдоксом около 375 года до н.э. Не исключено, что алгоритм Евклида является старейшим нетривиальным алгоритмом; соперничать с ним может только алгоритм умноже- Имется русский перевод: Д.

Кнут. Искусство программированы, т. 2 Пазучисленные авгоритим, У ' изб — М. И.Д, "Вильяма'*. 2000. Глана 3!. Теоретико-числовые алгоритмы !029 ния, известный еще древним египтянам. В статье Шаллита [310] описана история анализа алгоритма Евклида. Авторство частного случая китайской теоремы об остатках (теоремы 31.27) Кнут приписывает китайскому математику Сунь-Цзы, жившему приблизительно между 200 годом до н.э. и 200 годом н.э. (дата довольно неопределенная). Тот же частный случай сформулирован греческим математиком Никомахусом (!ч!!сЬошасЬпз) около 100 года н.э.

В 1247 году он был обобщен Чином Чиу-Шао (СЬЬ!и СЬш-Я1ао). Наконец в 1734 году Л. Эйлер (1.. Еп!ег) сформулировал и доказал китайскую теорему об остатках в общем виде. Представленный в этой книге рандомизированный алгоритм проверки простоты чисел взят из статей Миллера (М!11ег) [253] и Рабина (КаЬ!и) [287]; это самый быстрый (с точностью до постоянного множителя) из известных рандомизированных алгоритмов проверки простоты.

Доказательство теоремы 31.39 слегка адаптировано по сравнению с тем, что было предложено Бачем (ВасЬ) [28]. Доказательство более строгого результата для процедуры Мил.ек-КАвпч принадлежит Монье (Мошег) [256,257]. В течение многих лет проверка чисел на простоту была классическим примером задачи, в которой рандомизация представлялась совершенно необходимой для создания эффективного (с полиномиальным временем работы) алгоритма. Однако в 2002 году Агравал (Айгакна!), Каял (Кауа!) и Саксема (Бахеша) [4] поразили всех открытием детерминированного алгоритма с полиномиальным временем работы для проверки простоты.

До того самым быстрым детерминированным алгоритмом был алгоритм Кохена (СоЬеп) и Ленстры ().епзпа) [72], выполнявшийся для входного числа и за время (18 п)обк'Я'к"), что несколько превышает полиномиальное время. Тем не менее для практических целей рандомизированные алгоритмы остаются более эффективными и предпочтительными. Обстоятельное обсуждение задачи поиска больших "случайных" простых чисел содержится в статье Бьючимина (ВеацсЬеппп), Брассарда (Вгаззагг!), Крипо (Сгереац), Готье (Оопбег) и Померанца (Рогпегапсе) [35]. Концепция криптографической системы с открытым ключом сформулирована Диффи (13!%е) и Хеллманом (Нейшап) [86].

Криптографическая система КБА была предложена в ! 977 году Ривестом (К!мезг), Шамиром (БЬаппг) и Адлеманом (А<Пешки) [294]. С тех пор в области криптографии были достигнуты большие успехи. Углубилось понимание криптографической системы КБА, и в ее современных реализациях представленные здесь основные методы существенно улучшены.

Кроме того, разработаны многие новые методы доказательства безопасности криптографических систем. Например„Голдвассер (Оо!дкиаааег) и Микали (М!сай) [14!] показали, что рандомизация может выступать в роли эффективного инструмента при разработке безопасных схем кодирования с открытым ключом. Голдвассер, Микали и Ривест [142] представили схему цифровой подписи, для которой доказана трудность ее подделки, эквивалентная трудности разложения больших чисел на множители.

В книге Менезеса (Мепегез), ван Ооршота (кап ОогзсЬо!) и Ванстоуна (Чапа!опе) [252] представлен обзор прикладной криптографии. шзо Часть етт Избранные теыы Эвристический р-подход, предназначенный для разложения целых чисел на множители, был изобретен Поллардом (Ройагб) [275]. Представленный в этой книге вариант является версией, предложенной Брентом (Вгепг) [55]. Время работы наилучшего из алгоритмов, предназначенных для разложения больших чисел, приближенно выражается экспоненциальной функцией от кубического юрия длины подлежащего разложению числа и. Обобщенный теоретико-числовой алгоритм разложения по принципу решета, разработанный Бахлером [ВцЫег), Ленстрой (Ьепзна) и Померанцем (Рошегапсе) [56] как обобщение идей, заложенных в теоретико-числовой алгоритм разложения по принципу решета Полларда (Ройал)) [276] и Ленсгры (1.епзгга) и др. [231] и усовершенствованный Копперсмитом [Соррегзш1йй) [76] и другими, по-видимому, наиболее эффективен в общем случае для обработки больших входных чисел.

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

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

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