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

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

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

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

иь ив) ь на е, где ив произволъное число, представляемое с однократной точностью (т. е, О < е < Ь), и получает в результате (ш, ... ич же)ь, Каково время ее выполненияу ь 14. [М22] Приведите формальное доказательство корректности алгоритма М, основываясь на методе индуктивных утверждений, который описан в разделе 1.2.1 (см. упр. 4). 16. [М20] Если необходимо сформировать произведение двух и-разрядных дробных частей чисел (.иь из... и„) ь х (хи ее... в„) ь, а в качестве результата получить только и-разрядное приближение (.мыть... ш )ь, можно при помаши алгоритма М вычислить 2н-разрядный результат, который затем округлить до требуемого приближения. Но на это потребуется вдвое больше вычислительных затрат, чем необходимо для достижения приемлемой точности, так как учет произведения и,еь при с+у' > и+ 2 оказывает лишь незначителъное влияние на резулътат.

Оцените максимальную ошибку, которая может возникнуть, если произведения и,ег при 1+ у' > п + 2 в холе умножения будут полагаться равными нулю вместо того, чтобы вычисляться. ° 16. [20] (Короткое деление.) Постройте алгоритм деления неотрицательного и-разрядного целого числа (и ь... иьио)ь на е, где е — целое число, заданное с однократной точностью (т. е. 0 < е < Ь), получив частное (ш ь ... ичко)ь и остаток г. 1г. [М20] В обозначениях рис. 6 предположим, что е„ь > [Ь/2].

Покажите, что если и„= о Е то должно выполняться либо равенство 9 = Ь вЂ” 1, либо равенство а = Ь вЂ” 2. 16. [М20] В обозначениях рис. 6 покажите, что если д' = [(и„Ь+ и ь)/(е ь + 1)], то д' < д. ь 19. [М21] В обозначениях рис, 6 пусть 9 — некоторое приближение к д и 2 = и Ь + и -ь — 9е -ь Предгюложим, что е,-ь > О. Покажите, что если Ое ь > Ьг+ и„м то д < ф [Указание. Усовервгенствуйте доказательство теоремы А, исследован влияние величины е -ь ] 20. [М22] Используя обозначения и предположения из упр.

19, покажите, что если Ое -э < Ьг+ ие-т то Я = 9 нли 9 9 1. ь 21. [М28] В обозначениях из упр. 19 и 20 покажите, что если еь-ь > [Ь/2] и йи, т < Ьг+и ь, но о ~ 9, то и глод е > (1-2/Ь)е. (Последнее событие происходит с вероятностью, приблизителъно равной 2/Ь, так что «слн Ь есть размер машинного слова, то в алгоритме Р (за крайне редкими исключениями) должно выполняться равенство 9; = ф) ь 22. Щ Приведите прнмер деления четырехразрялного числа на трехразрядное, для которого необходимо включение в алгоритм Р шага Рб, если основание системы счиыения — 10. 23.

[Мйу[ Докажите, что дэя заданных целых чисел и и и, таких, чта 1 < а < Ь, всегда выполняются неравенства [Ь/2) < а«Ь/(и+ 1Ц < (и+ 1) [Ь/(и+ 1Ц < Ь, 24. [М20[ Используя закон распределения нанболее значимых разрядов, описанный в разделе 4.2,4, получите приближенную формулу вероятности того, что б ж 1 в алгоритме Р. (Прн з( ш 1 можно, разумеется, опустить большую часть вычислений на азатах Р1 и Р8.) 25.

«йб«Ншзишите программу для Н12, реалнзующую шаг Р1 алгоритма Р, что необходимо для завершения программы Р. 26. «31[ Напишите программу для Н12, реализующую шаг Р8 алгоритма Р, что необходимо для завершения программы Р. 27. [МЯО[ Докажите, что в начале шага Р8 алгоритма Р ненормализованный остаток (и з... изио)ь всегда является точным кратным б. 23. [Муб«(Л. ЯтоВоба, Язга/е па Яргэсотйк' Елйзгшасз' 9 (1983), 2$-32.) Обозначим а = (а -ь...

иьее)ь для любого целого основания Ь при е з и О. Выполним следующие действия. Х1. Если и з < Ь/2, умножнм э па [(Ь+ 1)/(а з + 1Ц. Обозначим результат этого шага через (а„а„-ь...езео)ь. Х2. Если и = О, присвоим э з- в+ (1/Ь) [Ь(Ь вЂ” е з)/(и„з+ 1Ци, и пусть результатом этога нзага будет (в„и„ь ... эз.е ... )ь. Будем повторять шаг Х2 до тех пор, пока не получим э„~ О. Докажите, что шаг Х2 выполиится не более трех раз и что в конце вычислений всегда будет е„= 1 и э„з ж О.

[Замечание. Если оба числа и и а умножить на указанные выше константы, значение частного и/е не изменится, а делитель примет внд (10а„з... ео.с зэ зе з)ь, Такой вил делитшзя очень удобен, так как в обозначениях алгоритма Р в начале шага РЗ, если (изч„зы из.ь~) = (1, О), в качестве пробного делителя берется д = и1з„или а = 6 — Ц 29. [10[ Докажите или опровергнитеслелующееутверждение: вначале шага Р?алгоритма Р равенство иуз„ш О выполняется всегда.

э 30. [33«В случае ограниченного объема памяти при вмполнении некоторых алгоритмов, аписанпых в этом разделе, для ввода и вывода информации желательна отводить одни и те же ячейки памяти. Можно ли при выполнении алгоритма А или Я хранить числа шиь шы ..., ш„з и из, ..., и„ь или ае, ..., е ь в одних и тех же ячейках памяти? Можно ли допустить, чтобы прн выполнении алгоритма Р значения чэстнага де,..., д„занимали те же ячейки памяти, что и и, ..., и + ? Допустима ли перекрытие ячеек памяти, используемых при выполнении алгоритма М для хранения входных и выходных данных? 31. [33[ Пусть основание системы счисления Ь м 3 н и = (и ьэ-з ...изие)з, а = (и»-з ° эьэе)з — целые числа, заданные в уравновешенней троичной системе счисления (см.

раздел 4.1), причем и„з ф О. Напишите алгоритм деления и на е, вычисляя остаток, абсолютное значение которого ие должна превышать зз[а[. Попробуйте найти алгоритм, достаточно эффективный для аппаратной реализации на компъютере со встроенной уравновешенной троичной арифметикой. 32. [М40[ Предположим, что основание системы Ь = 2з, а числа и и е — комплексные числа, представленные в мнимочетверичиой системе счисления. Постройте несколько алгоритмов деления и на е с возможным вычисленяем остатка и сравните их эффективность. 33.

«М40«Составьте алгоритм лля извлечения квадратного корня, аналогичный алгоритму Р и методу извлечения квадратного корня, который вспользуется при вычисленишс вручную. 34. [40] Разработайте набор машинных подпрограмм для выполнения четырех арифметических операций над произвольными целыми числами без ограниченкй их величины, но с учетом ограничения общего объема оперативной памяти компьютера. (Используйте связное распределение памяти так, чтобы время на поиск места для хранения резулътата совсем ие тратилось.) 35. [е0] Разработайте набор подпрограям для "плавающей арифметики десятикратной точности", используя девятиразрядное представление чисел с плавающей точкой по основанию Ь с избытком О, где Ь равно длине машинного слова, и выделяя для порядка полное слово.

Таким образом, каждое число в формате с плавающей точкой записывается в 10 словах памяти н общее масштабирование выполняется посредством сдвигов машинных слов целиком вместо сдвигов внутри слав.) 36. [Мйб] Поясните, как с высокой точностью вычислить!ай по заданному с соответствующей точностью приближению числа ф, используя только операции сложения и вычитания многократной точности и деления на короткие числа. ь 37. [80] (Ю, Саламин (Е, Яа1аш1п).) Объясните, как в алгоритме П при его реализации на двоичном компьютере запретить нормализацию и денормализацию, не изменяя порядка попыток вычисления разрядов частного, если число Ы представлено па степеням 2. (Как можно на шаге ПЗ вычислить 0, если на шаге В1 не бььта выполнена нормализация?) 38. [М05] Предположим, что и и е — целые числа в интервале 0 < и, в < 2". Предложите способ вычисления среднего геометрического [~/нее+ -') при иомощн О(п) операций сложения, вычитания и сравнения (и+ 2)-битовых чисел.

[Указание. Объедините классические методы умножения и извлечения корней, используя "конвейер".) 39. [85] (Д. Бейли (11, Вайеу), П. Борвейн (Р. Вогпеш) и С, Плуфф (Я. Р)опгге), 199б.) Поясните, как вычислить и-й бит двоичного представления числа к, не зная предыдущях и — 1 бит, используя тождество 1 1 4 2 1 1 ~-'1б" ~85+1 85+4 85+5 81+5) и выполняя О(п!об и) арифметических операций над О(1об и)-битовыми целыми числами. (Полагаем, что двоичные разрклы числа к не содержат слишком длинных строк из нулей нли единиц.) 40. [М84] Иногда возникает необходимость в делении числа и на число в, когда заранее известно, что деление выполнитсв без остатка. Покажите, что если и есть 2п-разрядное число и е является к-разрядным числом, таким, что в шог( е = О, то можно свкономить око- ло 75% объема вычислений в алгоритме П, вычислив сначала половину частного, начиная слева направо, а затем другую половину — справа палево.

ь 41. [М86] Во многих приложениях арифметики с высокой точностью требуются повтор- ные вычисления основания и-разрядного числа м, которое изначально было представлено по основанию Ь. Эти вычисления могут быть ускорены при помощи приема, предложенного Петером Л. Монтгомери (Расее 1.. Мопсбошегу) [Мвгй. Сошр.

44 (1985), 519 — 521]. Он вы- полнял вычисление остатка справа налево вместо общепринятого вытравления вычислений слева направо. а) Для заданных чисел и = х(в .ь — ~ ... к~ во)м ш = (ти„~... ш~ ше)ь и числа м', такого, что шош' шодЬ = 1, покажите. как вычислить и = х(е ~...аггее)м чтобы выполнялось соотношение Ь е щи ш = в шод ш. Ь) Для заданных и-разрядных целых чисел со знаком и, е и ю с [и[, [в[ < ш и заданного ш', как в алгоритме (а), покажите, как вычислить и-разрядное целое число 1, тако», что [г] < ш и Ь" С ш ве (по модулю ш), с) Как алгоритмы (а) н (Ь) упрощают выполнение арифметических операций по модулю шу й = ив+ 128, ш = (((Г/256) + Г)/256), е4.3.2.

Модулярная арифметика Еще один интересный метод выполненкя арифметических действий иад большими целыми числами основан на простых положениях теории чисел. Идея этого метода состоит в том, чтобы оперировать не непосредственно числом и, а его "остатками" и шорты ипхх(тз, ..., ипюйт„, где ты тз, ..., т„— "модули", не содержащие общих делителей (т. е.

они взаимно просты). Примем для удобства везде в этом разделе следующие обозначения: из — и шоб тз ° и — и той тг (1) н~ = н топ пгы Числа (имнз,...,и„) можно легко вычислить путем деления числа и на простые целые числа иы Важно отметить, что при этом нет никакой потери информации (при условии, что и не очень велико), так как всегда, зная (им из,...,и„), можно восстановить и. Например, если 0 < и < с < 1000, нельзя ппзучить (и шой 7, и той 11, и шой 13), которое равнялось бы (с пхх1 7, с шод 11, е пих1 13). Это следствие китайской теоремы об остатках, рассматриваемой ниже.

Поэтому (нмиз,...,и„) можно рассматривать как новый тип представления в компьютере — "мцдулярное представление" целого числа и". Преимущество модулярного представления заключается в том, что операции сложения, вычитания и умножения выполняются очень просто: (пы...,н,)+(ем...,ог) = ((иг +с1) пкх(ты ..., (и„+е„) шойтг), (ны " нг) — (еы ., е„) = ((иг — сч) пии1 т„..., (и„— е„) шод т„), (нм " ~ иг) х (ом..., сг) = ((н, х сч ) шой т„..., (и, х сг) шой т„) . (3) (3) (4) Для доказательства, к примеру, (4) достаточно показать, что для каждого модуля т1 выполняется равенство ио шод ту = (н шод гну)(о шой т ) шод ту.

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

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

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