Кук Д., Бейз Г. - Компьютерная математика (1048841), страница 19
Текст из файла (страница 19)
1. По аналогии с «естественней» аркфыетпкой, полученной для Ев, построить аналогпчную арнфметнку длн Е~в, используя спыволы (О, 1, ..., 9, А, В, ..., Л. 2. 11остронть арифметику для Ев, которан согласуется со строкой + ~ 0 1 2 3 4 5 2 1 2 3 4 0 5 1 3. Рассыатрнаая 1+ 3, показать, что следующая таблица приводит к протпворечшо: + ~ 0 1 2 3 4 5 0 ! 0 1 2 3 4 5 1 ~ 1 0 3 4 5 2 3 2. «Большая» конечная арпфметпка Мы уяве построили арпфыеткку для Ев. Во»ляпает вопрос: как можно расширить эту спстеыу, чтобы ныеть воэможность считать после 5? Для этого достаточно иметь множество п-значных чисел (наборов пз и элеыептоз пз Ев) с арнфыетнной над Ев Чтобы пронллюстрнровать это, рассыотрнм упорлдоченную тройку нэ Ев, т.
е. элементы ыно>кества Ев Х Е«ХЕв. Если Ев упорядочено обычным способом, т. е. О < 1<2 <3<4<5, тогда определны порядок на Хв Х Ев Х Ев по правилу (а, Ь, с)<(х, р, з), 119 го нет в строке. В результате такого выбора получаем соответствующую табл. 4.8. Она определяет так называемую арпфыетпку по ыодулю 6. (Эта арнфыетпка работает точно так же, нак и обычная целочисленная арлфыетика, за исключением того, что все целые числа заменяются на остатки от деленян пх на 6.) если а<к или а л н Ь<у или а л, Ф у и с<э. В атом слУчае элементы Еэ ЕэхЕэхЕе бУДУт Упо- рядочены следующим образом: (О, О, О), (О, О, 1), ..., (О, О, 5), (О, 1, 0), ..., (О, 1, 5), ° ° В 1 ° (О, 5, 0), ..., (О, 5, 5), (1, О, 0), ..., (1, 0,5), (5, 5, 0), ..., (5, 5, 5), Таким обраэом, существует 6' 216 раэличных троек.
Поэтому нужно уметь производить арифметические вычисления над Х~э в пределах от 0 до 215. В приведенном выше упорядочивании элементов нэ Х, (О, О, 5) непосредственно предшествует (О, 1, 0). (О, 1, 5) непосредственно предшествует (О, 2, 0) ° ° ° ° ° ° ° (О, 5, 5) непосредственно предшествует (1, О, 0). Следовательно, хотелось бы, чтобы выполнялось соотношение (О, О, 5)+ 1 (О, 1, 0), Однако до сих пор не было представления 1 в Еэ. И хотя это соотношение выглядит естественным, мы должны эаботиться о том, чтобы не использовать ни одного не определенного понятия. Для облегчения описания лредставим Х, 'как Аэ Х А~ Х Аэ и рассмотрим сумму (ам аь лэ) и (Ьь Ьь Ьо). Покомпонентное сложение дает (аэ+ + Ьэ, а~+ Ьь аэ+ Ьо), где сложение осуществляется в Хм и пока, как кажется, этого достаточно.
П р и м е р 2Л. Рассмотрим соотношение (О, 1, 3)+(4, 2, 1) =(4, 3, 4), которое будет более наглядным, если записать его в виде О, 1, 3 +' ' 4,2, 1 4, 3, 4 120 Однако 125 и 005 + г,* 3, 1 + О', О, '1 (= 1»> 3, 5, О О, О, О (= 07). // В результате операции сложения множество А» переходит в себя. Однако для того чтобы сумма достаточно больших чисел (таких, как 5+1) могла бы выйти за пределы Ае, нам необходимо производить некоторые действия в А~ и также, воаможно, в А».
(Это иллюстрируется табл. 4.9]. Таблица 49 4~0 1 2 3 4 5 + О 1 2 3 4 5 Возьмем любые два числа а и Ь из Е«. Тогда их сумма (в Е) составляет 6 «(а+,Ь)+(а+,Ь). Пример 2.2. 4 плюс 4 дает 6~(1)+(2) 8 в Е. Таблица +, дает «обычную» суъ«му двух злементов из Е«, в то время как таблица +, показывает, когда необходим «переход» в следующее множество Е«, и содержит только нули и единицы. Значения в +, ограничены, потому что если 0<я<в и 0<у<в, то Оя*х«;я+у<я+в<п+п 2п (и и 6 в Е»).
Х В действительности можно получить лучшую оценку, поскольку 0 < х я' п — 1 и 0 < у < п 1, и, следовательно, 0 < я+ у ~ 2п — 2 <2п — 1. Возвращаясь к суммированию (а», ап а») и (Ьз, Ьп Ьа) 121 О 1 2 3 4 5 1 2 3 4 5 О 2 3 4 5 О 1 3 4 5 О 1 2 4 5 О 1 2 3 5 О 1 2 3 4 О О О О О О О О О О О 1 О О О О 1 1 О О О 1 1 О О 1 1 1 О 1 1 1 1 1 0 1 2 3 4 5 «, ~ 0 1 2 3 4 5 р 0 0 О 0 0 1 2 3 0 2 4 0 0 3 0 3 0 4 2 0 0 5 4 3 0 0 0 4 5 1 2 4 2 О 3 3 4 2 4 2 1 5 0 0 0 0 0 0 0 0 0 О 0 0 0 0 0 1 1 1 0 0 1 1 2 2 0 0 1 2 2 3 0 0 1 2 3 4 До спх пор мы рассыатрпвалп только символы, имеюгцпе впд положительных чисел.
1(онечно, с спыволамп О, 1, 2, ... »<о<кис обращаться «естественным» образом, и, следовательно, пх можно пятерпретпровать как неотрицательные чпсла. Лрпф»<эти<<э над Х, оперирует с чпсламя от 0=(0, О, 0) до 215=(5, 5, 5), которые были получены из последовательности (от 0 до 5) в Хо.
Если 122 и ооозпачая ответ через («ь ««, Ь<), получим <1» ао+,Ьо, хо = ао +,Ьо, г а+.Ь+. х< если а, +,Ь< 1 тогда 1, иначе (а< + .Ь<) +,хо, А аз+.Ь»+.хь хо= еслиаа+ Ь»=1тогда1, плаче(аз+.Ьз)+ <хы Поскольку О~а,+Ь,<2я — 1 и х, 0 или х<=1, то переносимый результат из а, + Ь, + х«нпкогда не может быть больше 1. Заметны, что в наших определениях числа (О, О, 0) и (О, О, 1) в Х, 'действуют, как 0 и 1 в новой арифме- тике. Кроме этого, если х» 5, то результат сложения может оказаться слишком болыппы для Х«. В этом слу- чае говорят, что произошло «переполнение», Этот случай ыы обсудим более подробпо в 3 3 гл.
4, а до конца пара- графа возможность перевыполнения будем игнорировать. Аналогично моя<но испольэовать операции «р и «, (таблицы проязведеппя н переноса), заданные в табл. 410 для того, чтобы производить уыноженне над Х'„однако мы пе будеы этим заниматься. Таблица 4.10 взять множество ( — 3, — 2, -1, О, 1, 2) вместо Ео, то получим систему, которая содеряьпт отрицательные числа, но ведет себя странным образом. Если мы возьмем два множества Ео и множество (-3, — 2, -1, О, 1, 21, которое назовем Ег, п образуем множество 7» АЕ»х7„, то можно построить арифметику с чпсламп от -108 до 107.
Па самом деле арифметика является той ггсе самой, за исключением того, что значения 3, 4 и 5 в Аг сейчас интерпретируются как — 3, — 2, — 1 соответственно. Позтому, например, ( — 2, 4, 2) вычисляется в Е как ( — 2 «36)+ (4 «6)+ 2 = -46. Биекиия меясду двумя системами, определенная следующим образом: 3 — 3, 4- — 2, 5 — 1, хм и В остальных случаях, могкет быть применена в любой момент при условии, что результат вычислений не имеет цифр 3, 4 или 5 в Аг. Мы выбираем обозначения из сообрагкенпя удобства, пе вводя ограничений па случаи, когда поясно применять бпекцшо или обратное отобрагкепие.
Па атом атапе мы настойчиво советуем игнорировать лгобые очевидные противоречия, относящиеся к переполпенпго Аг. Зтот случай будет подробно рассмотрен в последующих параграфах на более простом примере. Отметим, что повея система «переходят» от положительных чисел к отрицательным. Например, ~(3,0,0) в старой системе, (2, 2, 5) + (1, О, '1) = (( — 3,0, 0) в новой системе. (В Е зто дает 107+ 1 -108!) Вычисления, включагощпе в себя сложение и вычитание, в новой арифметике довольно просты и зависит от двух тождеств. Первое имеет вид [5, 5, 5)+(О, О, 1) (О, О, 0) ((5, 5, 5) эквивалептно (-1, 5, 5)), а второе — вид (аз, аг, ао) + (Ьз, Ь!, Ьо) (5, 5, 5). Они имеют место тогда и только тогда, когда аг + Ь> — 5, а! + Ь! = 5, ао + Ьо 5.
Такии образом, чтобы вычислить обратное по слои>епию число к (аи а>, оэ), мы должны спачала найти число (Ь>, Ь>, Ьд), которое называют дополнеяием по 5, и затем прибавить 1 (О, О, 1). Это даст дополнение до 6. Проиллюстрируем этот процесс на следующем примере. Пример 2.3.
Найдем обратные элементы к ( — 3, 4, 1) и (3,4,1). Из 3, 4, 1 получаем 2, 1, 4 (дополнение до 5) +' 2, 1, 5 (дополнение до 6) Проверим реву чьтат 3, 4, 1 + 2, 1, 5 - О, О, О Поэтому — ( — 3, 4, 1) (2, 1, 5), у Таким образом, вычитание сводится к сложению с соответствующим дополнеяием. П р и м е р 2.4. Вычислим (1, 3, 4) — (2, 1, 5).
Берем 2, 1, 5 получаем 3, 4, О (дополиение до 5) результат 3, 4, 1 (дополнение до 6) прибавим (1, 3, 4) (1, 3, 4) 5, 1, 5=(-1, 1, 5). Проверяя вычислеппя пад 7., получаем 58 — 83 -25. У Конечно, причппой образования так нааываемых допол« келий до 5 и 6 является тот факт, что мы проводим вычисления над Мз (или Ез). В общем случае, если вычпслевия производятся в Х , мы доли>яы использовать дополнение до и — 1 и и> соответственно.
11адо подчеркнуть, что в вычислениях на ЭВМ мы обычно имеем дело с 7~ для некоторых фпксироваяпых т и и и очень репко — с множеством Е. Таким образом, совокупность имеющихся в пашем распоря>кении чисел всегда ограничена, и, хотя грапицы могут быть очень большими, мы не должны забывать о том, что они существуют. Риск тем более золян по той прпчипе, что в записи обычно опускэ>от запятые и все нули, стоящие слева от порвой ненулевой цифры за исключением числа (О, О, 0). Следовательно, (1, 3, 4) аапишется как 134, (0,0,6) какби (0,0,0) какО. Упражнение 42. Обозначим Х,„ХЕ,"„' через Х„",, где Ем ( 1 ° ° 1 Оф ° ° ° ~ — 1~з если и четное, й 3. Двоичная арифметика Из уже построенных арпфметпк над Е„п Х., легко выделить основы двопшой арифметики.
Существуют две так называемые двоичные арифметики. Первая — это энааовал и модульная $орма, определенная ва ( —, + ) Х Е« т.е. Х, (определенное в предыдущем параграфе) с добавленным знаком, расширяющим элементы Х.," Знак обычно кодируют в бинарной форме: 0 для «+» н 1 для « — ». Вторая арифметика (даопчлая арирлаетияа дополнений) — это Х» с элемевтамв (О, И во всех и поапцнях, Этот вид двоичной арифметики попользуется в большинстве ко»шыотеров.
11оэтому ограничим ваши рассмотрения Е» . Чтобы сделать обсуждение более конкретным, рассмотрим Х,, элементы которого лежат в пределах от 10000 (=-16) до 01111 ( +15) (т. е. содержит 32 2» различных чисел), Число — 1 представляется в Х', как 11111. Поэтому легко найти двои шое донолнеппе. Для этого надо слегка изменить все двоичные цифры, паэываемые битами, чтобы получить дополнение до 1, а затем прибавить 1, чтобы получить дополнение до 2. П р и м е р 3.1. -(01 011) 10 100 + 10 101 125 т — т т — ») Е =1 — —,,...,О,..., — „. ~, еслн т нечетное. Вычислить: а) 10 — 7; б) 17 — 23; в) ( — 8)+( — 21) в 4- » — » — »вЂ” каждои иэ «естественных» арнфметикХ«, Хш, Х» Ег» ° (3 а м е ч а н и е: числа в примерах заданы над Е; поэтому вначале требуется перевести их в соответствующую систему, а потом проводить вы шсления.) ( -2'+ 2'+ 2» = -Щ; — (10 110) + 01001 1 01 010 (=2' + 2' — 10).