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

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

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

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

В таком представлении (и/и') = (и/О') тогда и только тогда, когда и = О и и' = О', Перемножать дроби, конечно, просто. Чтобы найти (и/и') х (г/О') = (нг/ю'), можно просто вычислить пи и и'г'. Два произведения ии и гз'О' могут не быть взаимно простылги, но если обозначить И = йсг)(ггп, гг'О')а, то искомый результат будет равен ю = ггв/г1, ю' = и'ь'/г( (см, упр, 2). В разделе 4.5.2 рассматривается зффсктивнъгй алгоритм вычисления наибольшщ О общего делителя.

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

Бадей того, каждая итерация при определении с(г и с(з, видимо, выполняется быстрее, так как рассматриваются сравнительно малые числа. Если и, й, и и ггг — -.величины с однократной точностью, то этот метод имеет преимущество по сравнению с первым, поскольку, если только допускается представление чисел ю и ю' с однократной точностью, в вычислениях совсем не участвуют числа с удвоенной точностью. Деление может быть выполнено аналогично (см. упр. 4). Операции сложения и вычитания дробей немного сложнее, Обычная процедура ЗаКЛЮЧаЕтСЯ В тОМ, ЧтО ПРИНИМВЕтСЯ (П/П') Ю (О/О') = ((Пиг Ю и'О)/П'О'), а ЗатЕМ данная дробь приводится к несократнмому виду.

Прн этом используется, как и в первом методе, наибольший общий делитель г1 = йети(ио' ю и'н, и'О'). Но, опять же, можно избежать действий со столь большими числами, если начать с вычисления газ = йсг)(п', О'). При г(г = 1 искомыми делимым и делителем будут ю = пв' ю и'н и ю' = и'О'. (Этот случай следует выделить особо, поскольку согласно теореме 4.5.2В, если знаменатели п' и и' распредечены случайно, то г1г равно 1 примерно в 61 случае в здесь н даава дсбП означает наибввьщий общий дсвитваь (вгвагввг сотсоон беьчаог), — призг. перев.

из 100. Если !(! > 1, то положим 1 = и(о /сз!) х р(и'/с(!) и вычислим сЬз = йсг)(г, !(!)! окончательный результат равен ш = !/!зз, ю' = (и'/!1!)(и'/!зз). (В упр. 6 доказывается, что эти значения ш и ш' взаимно просты.) Операции над числами, представленными с однократной точностью, выполняются также с однократной точностью, но 1 может быть числом с двойной точностью или чуть больше (см. упр. 7); учитывая, что йсг)(! 4! ) = йсг1(Ф шос( г1з, 4з), вычисление числа Из не требует двойной точности. Например, чтобы вычислить (7/66) + (17/12), находим !(! = ксс)(66,12) = 6; тогда ! = 7 2+ 17 11 = 201, а Из = пса(201, 6) = 3, так что в результате получим — /( — ° — ) = 67/44.

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

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

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

В случае представления дроби в формате с плавающей дробной чертой сумма битов для числителя и знаменателя не превышает некоторого двлного 4! при этом для определения размера числителя как составной части цепочки из 7 бнт используется другое поле представлении. Бесконечность может быть представлена как (1/О). Чтобы выполнять арифметические действия над такими числами, введем определение х б! р = гоппс((х + у), х ~ р = гоппс((х — у) и т. д., где гопп!1(х) = х, если х представимо. В противном случае в качестве х выбирается одно из представимых чисел в окрестности числа х.

На первый взгляд может показаться, что для определения гоппс((х) лучше всего выбрать представимое число, ближайшее к х, по аналогии с выбором округления в арифметике с плавающей точкой. Но практика " В оригинале используются термины гйкед з!ав!!", "Йоанпй в!авв" и "в!ае!ьагквюез!с", которые в связи с отсутствием в русскоязычной литературе соответствующих устоявшихся терминов мы будем переводить как "4юрмат с фиксированной дробной чертой", "формат с плаваююей дробной чертой", "арифметика в формате с дробной чертой" и "числа в формате с дробной черзой".— При.м.

перев. показала, что лучше всего стремиться к выбору округления в виде "простых" чисел, поскольку числа с малыми числителями и знаменателями встречаются гораздо чаще, чем сложные дроби. Предпочтительно округлять числа до -' чаще, чем до зы-'. В этом случае правило округления, которое оказывается с практической точки зрения наиболее успешным, носит название "меднанное округление" н формулируется следующим образом. Если (и/и') и (и/и') — смежные представимые числа, такие. что для любого и/и' < х < и/и' гоцпс)(х) доджно равняться (и/и') или (и/и'), то процедура округления имеет вид и и+и о иэ О гопш1(х) = — для х < —, гоши!(х) = — для х > —. (1) из з+ и! и' + и' При точном выполнении равенства х = (и+и)/(и'+и') полагаем, что пшпд(х) равно ближайшей дроби с наименьшим знаменателем (или., если и' = и', с наименьшим числителем).

В упр. 4,5.3-43 показано, что пользовв.1ься медианным округлением достаточно просто. Например, предположим, что выполняются арп рметические действия с числами, представленными в формате с фиксированной дробной чертой при р = 8, так что для представимых чисел (и/и') выполняется -] 28 < и < 128 н 0 < и' < 256 и и .Ь и'. Такое округление не обеспечивает высокой точности, но дает предсшвление о механизме арифметики в формате с дробной чертой. Ближайшими к 0 = (О/1) числами будут (-1/255) и (1/255). Согласно правилу медианного округления получаем гоши!(х) = 0 тогда н тачько тогда, когда [х[ < 1/256.

Предположим, что ВыпОЛИЛ1Отся ВычИОЛения, В которых ИспоЛьзуется Вид 1 = 1зэ + 113, при усЛОВИИ ЗЗ ЗЫ 1ЗОО что вычисления осуществлялись с использованием точной арифметики рациональных чисел. Однако при промежуточных вычислениях выполнялось округление до представимых чисел. В этом случае з 14 округлится до (79/40), а зео — до (7/6). 11И Сумма округленных чисел, Я + е = —,„-', в свою очередь, округляется до (22/7). Таким образом, несмотря на выполнение трех операций округления получен правильный результат. Этот пример не был специально подобран, чтобы получился правильный результат. При получении результата решения задачи в виде простой дроби арифметика в формате с дробной чертой обеспечивает компенсапию ошибок промежуточных округлений. Впервые в литературе вопросы точного представления дробей в компьютерах обсуждались П.

Хенрнчи (Р. НепНс1),,!АСМ 3 (1956), 6 — 9. Представление дробей в формате с фиксированной и плавающей дробными чертами было предложено Дэвидом В. Ь!Втулой и опубликовано в книге Арр!гсабопз ОГ !Уип1Ьег ТЬеогу !о Хипзех!св! Апа!уэ!з, е1!!(ес( Ьу 8. К, ЕагешЬВ (Хе1э 1ог!ч Аса4)езп!с Ргезз, 1972), 486-489. Дальнейшее развитие этой идеи рассмотрено Матулой и Корнерупом (Когпегир) в статьях, Опубликованных в журналах Ргос. ХЕЕЕ Бупзр. Сошрисег АП!Ь.

4 (1978), 29-47; Бес!иге Хо!ел ш Сотр. Бс!. 72 (1979), 383-397; Соглрибпй, Бпрр!. 2 (1980), 85— 111; 1ЕЕЕ 21длз. С-32 (1983), 378-388; 1ЕЕЕ 7)эпз. С-34 (1985)., 3-18; !ЕЕЕ Тгапз. С-39 (1990), 1106-1115. УПРАЖНЕНИЯ 1. [15) Предложите приемлемый метод сравнения двух дробей с целью проверки выполнении неравенства (к/и') < (е/е'). 2. [М!5] Докажите, что если 4 =. йсб(и,е), то и/4 и е/1! Взаимно просты. 3. [М30[ Докажите, что из того, что и 1. и' н е.(. е, следует йсй(ие, и е ) = йсб(и, е ) йсб(и, е).

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

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

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