Главная страница

Судопланов. Судоплатов С.В., Овчинникова Е.В. Дискретная математика 2016. Редакционная коллегия серии учебники нгту


Скачать 2.01 Mb.
НазваниеРедакционная коллегия серии учебники нгту
АнкорСудопланов
Дата05.06.2022
Размер2.01 Mb.
Формат файлаpdf
Имя файлаСудоплатов С.В., Овчинникова Е.В. Дискретная математика 2016.pdf
ТипУчебники
#571403
страница13 из 36
1   ...   9   10   11   12   13   14   15   16   ...   36
, 0 + 1 = 1, 1 + 0 = 1, 1 + 1 = 10;
0 · 0 = 0, 0 · 1 = 0, 1 · 0 = 0, 1 · 1 = 1.
Поскольку в этой системе для изображения чисел берутся только две цифры, для построения компьютера можно использовать элементы, име- ющие лишь два различных устойчивых состояния, одно из которых соот- ветствует цифре 0, а другое — цифре 1. При этом алгебраическая система с носителем, состоящим из двоичных кодов, изоморфна соответствующей алгебраической системе, элементы которой имеют десятичную запись.
3.
Восьмеричная система
В
восьмеричной системе счисления используются цифры
0, 1, 2, 3, 4, 5, 6, 7. Запись числа основывается на его разложении по сте- пеням числа восемь с указанными коэффициентами.
Пример 3.2.2.
215 10
= 192 + 16 + 7 = 3 · 8 2
+ 2 · 8 1
+ 7 · 8 0
= 327 8
,
30.25 10
= 3 · 8 1
+ 6 · 8 0
+ 2 · 8
1
= 36.2 8
. ¤
4.
Шестнадцатеричная система
В этой системе для записи базисных чисел от нуля до пятнадцати ис- пользуются следующие символы (цифры): от 0 до 9 — те же самые арабские цифры, а для следующих чисел — от десяти до пятнадцати — символы a, b,
c, d, e, f .
Пример 3.2.3. ae.8 16
= 10 · 16 + 14 + 8/16 = 160 + 14 + 0.5 = 174.5 10
. ¤

88
Глава 3. ЧИСЛОВЫЕ СИСТЕМЫ
5.
Смешанные системы счисления
В некоторых случаях числа, заданные в системе счисления с основани- ем P , приходится изображать с помощью цифр системы с основанием Q
(Q < P ). Такая необходимость возникает, например, когда в память машины,
способной воспринимать только двоичные цифры, нужно ввести десятичные числа для их последующей переработки. В таких случаях используют сме-
шанные системы счисления, в которых каждый коэффициент разложения числа по степеням P записывается в Q-ичной системе. Такая смешанная система называется Q-P -ичной. При этом для записи каждого из упомя- нутых выше коэффициентов используется одно и то же количество Q-ичных разрядов, минимально необходимое для записи любого из допустимых коэф- фициентов.
Пример 3.2.4. Представим число 8903 10
в смешанной двоично- десятичной системе. Поскольку 8 10
= 1000 2
, 9 10
= 1001 2
, 3 10
= 0011 2
, имеем
8903 10
= 1000 1001 0000 0011 210
. ¤
Отметим, что запись в двоично-десятичной системе отличается от за- писи данного числа в двоичной системе счисления. Например, 8903 10
=
= 10001011000111 2
, что отличается от записи этого же числа в смешанной двоично-десятичной системе.
Особый интерес представляет случай, когда P = Q
l
(l ∈ ω). При этом запись любого числа в смешанной Q-P -ичной системе совпадает с записью этого числа в Q-ичной системе.
Пример 3.2.5. Если P = 8, Q = 2 (8 = 2 3
), то
2763 8
= 010 111 110 011 28
= 010 111 110 011 2
. ¤
Таким образом, запись числа в P -ичной системе счисления в случае
P = Q
l
является просто сокращенной записью изображения этого же числа в Q-ичной системе: для такой сокращенной записи Q-ичные цифры в изоб- ражении числа объединяются вправо и влево от точки в группы по l раз- рядов (дополняя, в случае необходимости, нужное количество нулей справа и слева), и каждое число, представленное в Q-ичной системе этой группой разрядов, записывается одной P -ичной цифрой.
Пример 3.2.6. 1011011011.111011 2
= 0010 1101 1011.1110 1100 2
=
= 0010 1101 1011.1110 1100 216
= 2db.ea
16
. ¤

3.2. СИСТЕМЫ СЧИСЛЕНИЯ
89 6.
Перевод чисел из одной системы счисления в другую
В связи с использованием различных систем счисления возникает необхо- димость перевода чисел из одной системы в другую. Задача перевода состоит в следующем. Пусть известна запись числа x в системе счисления с основа- нием P : x = (p
n
p
n−1
. . . p
0
.p
1
p
2
. . . p
−k
)
P
, где p
i
— цифры P -ичной систе- мы. Требуется найти запись числа x в системе счисления с основанием Q:
x = (q
m
q
m−1
. . . q
0
.q
1
q
2
. . . q
1
)
Q
, где q
i
— цифры Q-ичной системы. При этом можно ограничиться рассмотрением положительных чисел, поскольку перевод любого числа сводится к переводу его абсолютной величины с по- следующим приписыванием соответствующего знака.
Для определенности будем считать, что в процессе перевода должны ис- пользоваться только средства P -ичной арифметики. В связи с этим необхо- димо рассмотреть перевод из Q-ичной системы в P -ичную (Q → P ) и из P - ичной в Q-ичную (P → Q).
Перевод Q → P . Если известна запись числа x в Q-ичной системе
x = (q
m
q
m−1
. . . q
0
.q
1
q
2
. . . q
1
)
Q
, перевод в P -ичную систему сводится к вы- числению значения многочлена
x = q
m
Q
m
+ q
m−1
Q
m−1
+ . . . + q
0
+ q
1
Q
1
+ q
2
Q
2
+ . . . + q
−l
Q
−l
,
что следует из правил записи числа x в Q-ичной системе.
Пример 3.2.7. Переведем число x = ba.8 16
в десятичную систему сред- ствами десятичной арифметики. Здесь Q = 16, P = 10. Имеем
x = 11 · 16 + 10 + 8 · 16
1
= 186.5 10
. ¤
Перевод P → Q. Рассмотрим перевод целых чисел и правильных дробей.
В общем случае перевод любого числа сводится к независимому переводу его целой и дробной частей.
Перевод целых чисел. Пусть дана запись целого числа N в системе счис- ления с основанием P . Поскольку N — целое число, его запись в Q-ичной системе будет иметь вид N = (q
k
q
k−1
. . . q
0
)
Q
, где q
i
(0 6 q
i
< Q) — иско- мые цифры Q-ичной системы. Эта запись является сокращенной записью многочлена N = q
k
Q
k
+ q
k−1
Q
k−1
+ . . . + q
0

90
Глава 3. ЧИСЛОВЫЕ СИСТЕМЫ
Для определения q
0
разделим обе части последнего равенства на Q:
N/Q = q
k
Q
k−1
+ . . . + q
1
+ q
0
/Q. Приравнивая между собой целые и дробные части в левой и правой частях (учитывая, что q
i
< Q), получим, что q
0
есть остаток от деления N на Q.
Целочисленное частное от деления N на Q обозначим через N
1
Тогда N
1
= q
k
Q
k−1
+ . . . + q
1
. Поскольку N
1
есть целое число, к нему можно применить тот же прием для определения значения q
1
, которое равно остат- ку от деления N
1
на Q. Полученное при этом частное обозначим через N
2
и т. д. Этот процесс заканчивается, когда очередное частное окажется рав- ным нулю. Для окончательной записи числа N в Q-ичной системе нужно в соответствующем порядке записать коэффициенты q
i
, изображая каждый из них одной Q-ичной цифрой.
Пример 3.2.8. 1. Переведем десятичное число N = 23 в двоичную систему средствами десятичной арифметики (P = 10, Q = 2):
23/2 = 11 + 1/2, q
0
= 1, N
1
= 11,
11/2 = 5 + 1/2, q
1
= 1, N
2
= 5,
5/2 = 2 + 1/2, q
2
= 1, N
3
= 2,
2/2 = 1 + 0/2, q
3
= 0, N
4
= 1,
1/2 = 0 + 1/2, q
4
= 1, N
5
= 0.
Поскольку числа нуль и единица в каждой из этих систем обозначаются цифрами 0 и 1, то в процессе деления сразу получены искомые двоичные цифры: N = 10111 2
2. Переведем число N = 175 10
в шестнадцатеричную систему:
175/16 = 10 + 15/16, q
0
= 15, N
1
= 10,
10/16 = 0 + 10/16, q
1
= 10, N
2
= 0.
Таким образом, N = 10 · 16 1
+ 15 · 16 0
. Число 10 соответствует шестнадцате- ричной цифре a, число 15 — цифре f , следовательно, N = af
16
. ¤
Перевод дробных чисел. Пусть требуется перевести в P -ичную систему правильную дробь x (0 6 x < 1), заданную в ее P -ичной записи:
x = 0.p
1
p
2
. . . p
−k
. Запись этого числа в Q-ичной системе будет иметь вид
x = 0.q
1
q
2
. . . q
−m
. . . Значит,
x = q
1
Q
1
+ q
2
Q
2
+ . . . + q
−m
Q
−m
+ . . . ,
где q
i
— коэффициенты Q-ичного разложения, подлежащие определению.
Нетрудно убедиться, что эти коэффициенты можно получить путем после- довательного умножения на Q сначала исходного числа x, а затем дробной

3.3. КОМПЬЮТЕРНАЯ АЛГЕБРА И ЧИСЛЕННЫЙ АНАЛИЗ
91
части очередного полученного произведения. Этот процесс продолжается до тех пор, пока дробная часть очередного произведения не окажется рав- ной нулю либо не будет достигнута требуемая точность изображения числа x
в Q-ичной системе.
Пример 3.2.9. Перевод числа x = 0.1 10
в двоичную систему приводит к такой последовательности действий:
0.1 · 2 = 0.2, q
1
= 0, дробная часть = 0.2,
0.2 · 2 = 0.4, q
2
= 0, дробная часть = 0.4,
0.4 · 2 = 0.8, q
3
= 0, дробная часть = 0.8,
0.8 · 2 = 1.6, q
4
= 1, дробная часть = 0.6,
0.6 · 2 = 1.2, q
5
= 1, дробная часть = 0.2,
. . .
Очевидно, что дальше результаты будут повторяться, и поэтому
x = (0.0001100110011 . . .)
2
= 0.0(0011)
2
. ¤
§ 3.3.
Компьютерная алгебра и численный анализ
Термин компьютерная алгебра объясняется способностью компьюте- ров манипулировать математическими выражениями, заданными символь- но, а не численно. Системы компьютерной алгебры освобождают от рутин- ной работы, связанной с численными ошибками (усечение и округление).
Прежде чем рассматривать точную арифметику, реализуемую в систе- мах компьютерной алгебры, отметим неотъемлемые недостатки численных расчетов с использованием компьютеров. Компьютер — это машина с конеч- ной памятью, состоящей из слов конечной длины алфавита {0, 1}. Элементы компьютерного слова называются битами. Обычно длина компьютерного слова составляет 16 или 32 бита, при этом максимальное целое число, кото- рое можно разместить в слове (в двоичной системе счисления), составляет
2 16
1 или 2 32
1, что соответствует пятизначным или десятизначным числам в десятичной системе счисления.
При выполнении численных расчетов на компьютере обычно возникает проблема представления бесконечного множества вещественных чисел в ко- нечной памяти. Наиболее распространенным способом решения этой пробле- мы в численном анализе является приближение (округление) вещественных чисел с использованием конечного множества с плавающей точкой.

92
Глава 3. ЧИСЛОВЫЕ СИСТЕМЫ
0 1
4 1
2 1
2 3
3 1
2

1 4

1 2
1
2
3
3 1
2
Рис. 3.1
Множество F чисел с плавающей точкой характеризуется основанием счисления P , точностью t и областью значений экспоненты [L, U ], где пара- метры P, t, L, U зависят от компьютера. Каждое число f ∈ F представляется в виде
f = ±
µ
d
1
P
+
d
2
P
2
+ . . . +
d
t
P
t

P
e
,
где целые числа d
i
, i = 1, 2, . . . , t, удовлетворяют неравенствам 0 6 d
i
6 P −1,
L 6 e 6 U. Если d
1
6= 0, число f ∈ F называется нормализованным числом
с плавающей точкой.
Отметим, что при использовании чисел с плавающей точкой или целых чисел, помещающихся в одном компьютерном слове, арифметические опера- ции выполняются очень быстро, поскольку они производятся не программ- ным обеспечением, а электронными схемами компьютера.
Нетрудно подсчитать, что множество F содержит
2(P − 1)P
t−1
· (U − L + 1) + 1
нормализованных чисел с плавающей точкой (включая нуль). Эти числа размещены на числовой прямой равномерно не на всей области значений,
а только между последовательными степенями P .
Пример 3.3.1. На рис. 3.1 изображено 33-элементное множество норма- лизованных чисел с параметрами P = 2, t = 3, L = 1, U = 2. ¤
Приведенный пример показывает, что сумма (или произведение) данных чисел f
1
и f
2
из F может не принадлежать F и должна быть приближена ближайшим числом с плавающей точкой. Разность между истинным и при- ближенным значениями суммы (или произведения) является ошибкой округ- ления. Отметим также, что частичные операции сложения и умножения в F
не удовлетворяют законам ассоциативности и дистрибутивности. Например,
в 33-элементном множестве F справедливо 5/4 + (3/8 + 3/8) = 2, где 5/4,

3.4. СПИСОЧНОЕ ПРЕДСТАВЛЕНИЕ ЧИСЕЛ
93 3/8, 2 ∈ F . Однако (5/4 + 3/8) + 3/8 6= 2, поскольку в F не определена сумма
(5/4+3/8) и это выражение должно быть приближено в F либо числом 3/2,
либо числом 7/4. Ошибки округления могут возникать и при работе с це- лыми числами, например, при вычислении произведения двух s-значных чисел на компьютере, который не может обрабатывать числа, содержащие больше s цифр.
Таким образом, в численном анализе нужно тщательно оценивать ошиб- ки округления, возникающие при работе любого алгоритма. Это указывает на необходимость построения и использования программных систем, способ- ных обрабатывать выражения в символьном виде и производить безошибоч- ные вычисления. Опишем два подхода к построению таких систем, первый из которых использует списочное представление чисел, а второй — много- модульную арифметику.
§ 3.4.
Списочное представление чисел
1.
Списки и базисные операции над списками
Определим по индукции понятие списка над множеством S:
1) любой элемент a ∈ S является списком над множеством S;
2) если a
1
, . . . , a
n
— списки над множеством S, n > 0, то (a
1
, . . . , a
n
) —
список над множеством S;
3) никаких списков над множеством S, кроме построенных по пп. 1 и 2,
нет.
Список, соответствующий n = 0 в п. 2, называется пустым и обозна- чается так же, как и пустое слово, через Λ. По определению каждое слово непустого алфавита S является списком над S.
Определим основные операции над списками. Если a = (a
1
, . . . , a
n
) —
список, то
длина(a) ­ l(a) ­ n;
первый(a) ­ π
1
(a) ­ a
1
;
последний(a) ­ π
n
(a) ­ a
n
;
хвост(a) ­ π
2,...,n
(a) ­ (a
2
, . . . , a
n
);
развернутый(a) ­ π
n,...,1
(a) ­ (a
n
, . . . , a
1
);
если b = (b
1
, . . . , b
k
) — список, то
присоединение(b, a) ­ bˆa ­ (b
1
, . . . , b
k
, a
1
, . . . , a
n
);
отсоединение(b, bˆa) ­ a.

94
Глава 3. ЧИСЛОВЫЕ СИСТЕМЫ
2.
Списочное представление целых и рациональных чисел
Как уже отмечалось, компьютерное представление целых чисел ограни- чено длиной машинного слова. Для расширения возможностей такого пред- ставления и выполнения точных арифметических действий можно исполь- зовать задание целых чисел в виде списков. При этом, однако, необходи- мо разработать специальное программное обеспечение, позволяющее выпол- нять арифметические операции над списками.
Пусть P — такое основание счисления, что P − 1 — наибольшее значение,
хранимое в компьютерном слове. Рассмотрим два типа целых чисел. Если
1   ...   9   10   11   12   13   14   15   16   ...   36


написать администратору сайта