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

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

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

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

" В литературе ка русском языке исеольэуетгя аиалогичимя со смыслу терман "представление в остаточных классах". Деды в переводе будет использована терминология оригинала. — Прем, яезее. 42. (зги] Обозначям через Р„ь вероятность гого, что для зздеивмх гл н Ь выполняется ((и~ +" + и,)/Ь") = Гс, где им,, в — случайные и-разрядные целые числа, представленные в системе счисления по основанию Ь.

(Это распределение события ш„в алгоритме сложениЯ в столбик нз УпР. 2,) Покажите, что Р„ь = -~~(, ) + О(Ь "), где ( ь) есть число Эйлера (см, раздел 5.1.5). ь 48. [22) Оттенки серого цвета нзи компоненты цветовой гаммы в цифровом виде обычно представляются 8-битовыми числами и в кнтервале (О., 255), выраженными дробью и/255. По двум таким дробям и/255 и с/255 часто используемые алгоритмы графики приближенно вычисляют и/255, как ближайшее целое к ие/255.

Докажите, что и может быть вычислено по формуле Это равенство следует из основного положения элементарной теории чисел: х пкк1 шу = ршоо ту тогда и только тогда, когдал эз у (по модулю ш,). Далее, если х гн х' и у ьз у', то ху эз х'у' (по модулю шу); отсюда следует (и той т )(и шоб т ) гн ие (по модулю пт ). Основной недостаток модулярного представления состоит в том, что не так просто проверить, является ли (им..., и„) ббльшим, чем (еы..., е„). Трудно также проверить, возникло ли переполнение в результате выполнения операций сложения, вычитания или умножения, но еще сложнее выполнять операцию деления.

При выполнении такого рода операций в сочетании с операциями сложения, вычитания и умножения применение модулярной арифметики оправдано лишь в том случае, если имеются средства быстрого перехода к модулярному представлению и обратно. По этой причине переход от модулярвого представления к позиционным системам счисления и наоборот является одной из основных тем данного раздела. Операции сложения, вычитании и умножения, основанные на формулах (2)-(4), называются арифметикой остатков или модуллрной ерифмешяяей. Область чисел, нед которыми можно выполнять операции мпдулярной арифметики,— зто т = тате... т„(произведение модулей).

Если каждое из шу близко к размеру машинного слова, можно оперировать и-разрядными числами, когда г и. Отсюда следует, что при использовании модулярной арифметики общее время, затрачиваемое на выполнение операций сложения, вычитания и умножения с и-разрядными числами, по существу, пропорционально и (не учитывая время„затрачиваемое на переход к модулярному представлению и обратно). При выполнении операций сложения и вычитания применение модулярной арифметики не дает никаких преимуществ, однако при умножении может быть получена значительная выгода, поскольку время выполнения операции умножения традиционным методом, описанным в разделе 4.3.1, пропорционально пз, Кроме того„на компьютере, в котором предусмотрена возможность параллельного выполнения операцвй, применение модулярной арифметики дает значительное преимущество даже для сложения и вычитания.

Операции, связанные с разными модулями, могут выполняться одновременно, так что получается реальное повышение скорости их выполнения. Поскольку для традиционного метода, описанного в предыдущем разделе, требуется выполнение переноса разрядов, традиционный метод не позволяет достичь подобного сокращения времени реализации арифметических операций. Возможно, когда-нибудь компьютеры с высокой степенью параллелизма позволят сделать одновременное выполнение операций обычным делом, и тогда молулярная арифметика приобретет важное значение для вычислений в реальном времени, т. е. в условиях, когда для конкретной задачи требуется дать быстрый ответ с высокой точностью.

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

Вычисления в реальном времени являются тем исключением, при котором параллелизм, присущий молулярной арифметике, приобретает большое значение.) Теперь проанализируем фундаментальное полажение, лежащее в основе модулярного представления чисел. Теорема С (Китайская теорема об остатках). Пусть»пм т», ..., т, — положи- тельные целые попарно простые числа, т. е.

(о) т ~те при» ~Ь. Пусть т = т»тэ...т„н пусть также а, и», из, ..., и„— целые числа. Тогда существует ровно адно целое число и, удовлетворяющее условиям а < и < а + т и и гя и» (по модулю»п;) при 1 <» <».. (6) Доказательство. Если и ьз е (по модулю т.) при 1 < ! < г, то и — е кратно т для всех !. Тогда из условия (5) следует, что и - о кратно т = т»тэ... т„. Значит, уравнение (6) имеет не более одного решения. Для завершения доказательства необходимо показать, что существует»ю меньшей мере одно решение. Это можно сделать двумя простыми способами.

Способ 1 (кНеконструктивное" доказательство). Так как и принимает т различных значений а < и < а + т, наборы из г чисел (итог ты, ..,и пюб т„) также должны принимать т различных значений (поскольку уравнение (6) имеет не болев одного решения). Но имеется ровно т»тэ... т, возможных»-наборов (о»,..., в„), таких, что 0 < в < т,.

Поэтому каждый г-набор должен встречаться точно один раз и должно существовать такое значение и, для которого (ишоб т»,... » и гпо'1 тг) = (и» ~ ° . ~ ~ь) . Способ 2 (" Конструктивное" доказательство). Можно найти числа М при 1 < » < г, такие, что М! эз 1 (по модулю т,) и ЛХ, эз 0 (по модулю ть) для Ь ~1. (7) Действительно, из (5) следует, что т и т/т, взаимно просты, а потому согласно теореме Эйлера (упр. 1.2.4-28) можно взять Иу =(т(т») !™ 1.

(8) Теперь число а+ ((и!М! + изМ2+ "'' + игмг а) шо )т) (9) удовлетворяет всем условиям (6). ! Частнь»й случай этой теоремы был сформулирован китайским математиком Сунь Цу, который предложил правило, названное "тай-йен" (" большое обобщение" ). Дата написания его работы точно не установлена; предположительно — между 280 и 473 г. н.

э. Дальнейшее развитие эта задача получила в работах математиков средневековой Индии„предложивших методы кр»п»лака !Ьи(!айа»' (см. раздел 4.5.2). Однако в общем ви,пе теорема С впервые была сформулирована и доказана Чин Чжу-Шао в работе ВЬп ЯЬп СЫп СЬвпб (1247), в которой рассмотрен также случай, когда модули могут иметь общие множители (как в уир. 3). [См. д. »чеепйаш, Яс!енсе аЫ С!т!)!гвг!оп ш СИпа 3 (СашЬгЫВе 1)шчегэ)су Ргевв, 1959), 33-34, 119-120; У.

11 апд Б. 11и, СЬ!пеэе Ма1Ье»па!!сэ (Ох!ох»1: С!вхепдоп, 1987), 92-94, 105, 161-166; К. БЬеп, .4гсЬ1ге й»г Н!эй»гу ог" Ехасг бс!евсея 38 (1988), 285-305.[ Многочисленные исследования, посвященные этой теории, обобщены Л. Ю. Диксоном (1. Е. П(сйэоп) в книге Н!в!агу ог гЬе ТЬеогу ог ЖпшЪе»э 2 (Сагпеб)е )пэс. ог'ЪЧаэМпйсоп, 1920), 57-64. Как следует из теоремы С, мцлулярное представление можно использовать для чисел в любом соответствующем интервале т = т1тт...т„целых чисел.

Например, можно в (б) взять а = 0 и работать только с неотрицательными целыми числами и, меньшими т. С другой стороны, при вьпюлнепии операций сложения и вычитания, так же, как и умножения, обычно удобнее всего предположить, что все модули тм тз, ..., т„являются нечетными числами, так что и т = т1тз... т,, тоже нечетное, и работать с целыми числами из интервала т т — — <и< —, (10) 2 2' симметричного относительна нуля. Для выполнения основных операций, перечисленных в (2) — (4), иеобходимо вычислить (из+из) шоб т, (и — хз) гпоб т и иге пюб т при 0 < ит, иг < ту. Если глз — число однократной точности, то лучше всего формировать иус9 шоб гпз путем умножеиия н последующего деления.

Что касается операций сложения и вычитания, то здесь ситуация проще„так как не требуется деление; удобно рассматривать следующие формулы: (и, + ву) шод т„= и, + из — ту(из + и, > т,!. (1Ц (и. — иу) пюд т = и — и- + т;(иГ < из]. (12) (См.

раздел 3.2.1.1.) Поскольку желательио, чтобы ю было как можно ббльшим, проще всего принять т1 наибольшим нечетным числом, соответствующим машинному слову, в качестве тз принять наибольшее нечетвое число < тм взаимно простое с тм а в качестве тз — иаиболыпее нечетное число < тт, взаимно простое как с тм так и с тз, и т. д., пока не наберется столько т, сколько будет достаточно д чя образования нужного гп. Способы эффективного определения „являются ли два числа взаимно простыми, рассматриваются в разделе 4.5.2. В качестве простого примера предположим, чтб имеется десятичный компьютер со словом, содержащим дае цифры, так что размер слова равен 100. Тогда в результате только что описанной процедуры получаем т1 =99, газ =97, тз =95, т, =91, ть =89, те =83 (13) и т.

д. При работе иа двоичных компьютерах иногда желательно выбирать модули тг иным образом: т =2" — 1. (14) Другими словами, значение каждого модуля на едипицу меньше очередной степени 2. Такой выбор зиачения модуля т, зачастую упрощает выполнение основных арифметических операций, ибо выполнять вычисления с числами, представленными по модулю 2м — 1, несколько проще, чем с числами, представленными в обратном коде. После того как значения модулей выбраны таким образом, полезно несколько ослабить условие 0 < иу < тЗ и потребовать только, чтобы 0 < и, < 2'~, иу гв и (по модУлю 2еч — 1), (15) Таким образом, значение и = т = 2м — 1 принимается в качестве оптимального вместо иу = О, поскольку это, с одной стороиы, ие влияет на справедливость теоремы С, а с другой — означает, что и, может быть любым е -битовым двоичиым числом.

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

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

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