Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Раздел 1_РЕД_2.doc
Скачиваний:
291
Добавлен:
27.03.2016
Размер:
10.44 Mб
Скачать

4.5. Двоичные (булевы) векторы

Двоичным (булевым) n-мерным вектором называют набор из n чисел (b1b2, ..., bn), каждое из которых может принимать только значения в двоичной системе счисления – 0 или 1.

Двоичный вектор являетсяобратным (инвертированным) к , если он образован иззаменой всех нулей единицами, а единиц – нулями.

Например, если = (011101), то = (100010).

Если в записи двоичного вектора длиныn устранить запятые, его можно рассматривать как двоичную запись некоторого целого числа. Наименьшим таким числом является 0. Ему соответствует вектор = (0, ..., 0). Наибольшим является число 2n – 1, которому соответствует вектор =(1, ..., 1). Следовательно, при помощи полного набора двоичных векторов длиныn можно записать все 2n целых чисел из отрезка [0, 2n  1]. Такие числа называют порядковыми номерами векторов. Их используют как в двоичном виде, так и в десятичной системе счисления.

Пример 1. Найти порядковый номер булева вектора =(1, 0, 0, 1, 0, 1) в десятичной системе счисления.

Решение. Устраняя запятые в векторе, получим двоичную запись 1001012. Переводя ее по правилу 2.1.1 в десятичную систему счисления, получим:

1001012 = 1  25 + 1  22 + 1  20 = 3210 + 410 + 110 = 3510.

Ответ:десятичный порядковый номер заданного булева вектора равен3510.

В качестве меры близости булевых векторов используют расстояние Хэмминга.

ОпределениеРасстоянием Хемминга между булевыми векторами n иn называют величину  ( n, n), которая равна числу координат, по которым различаются векторы n иn.

Пример 8.   (100011, 110011)=1, (0101, 1010)=4.

Определение. Булевы векторы n иn , различающиеся ровно по одной координате (  (n, n) = 1), называют соседними.

Рассмотрим наиболее употребительные геометрические интерпретации булевых n – мерных векторов.

1. Представление в виде двоичных чисел. Если в записи вектора bn устранить запятые, ее можно рассматривать как двоичную запись некоторого целого числа. Наименьшим таким числом является 0. Ему соответствует вектор bn =(0, ..., 0). Наибольшим является число 2n1, которому соответствуетbn = (1, ..., 1). Следовательно, при помощи векторов bn можно записать все 2n целых чисел из интервала [0, 2n – 1]. Такие числа будем называть порядковыми номерами векторов.

Лексикографическим называют такой порядок векторовbn, когда соответствующие им двоичные числа расположены по возрастанию от 0 до 2n – 1.

В качестве примера рассмотрим полное множество 3-мерных двоичных векторов, расположенных в лексикографическом порядке:

0 (0, 0, 0), 4 (1, 0, 0),

1 (0, 0, 1), 5 (1, 0, 1),

2 (0, 1, 0), 6 (1, 1, 0),

3 (0, 1, 1), 7 (1, 1, 1).

2. Бинарное дерево Тn. Сопоставим множеству всех 2n векторовbn следующую древовидную структуру, начинающуюся в корневой вершине О (вершине нулевого уровня). Из нее выходят вниз два отрезка (ребра), соответствующие значениям b1=0 (влево) и b1=1 (вправо) и оканчивающиеся вершинами первого уровня. Из них выходят вниз по два ребра, соответствующие b2=0 (влево) и b2=1 (вправо) и оканчивающиеся новыми вершинамивторого уровня и т. д. Процесс завершается построением всех вершин n-го уровня. Данная структура называется бинарным деревом и обозначается Тn. На рис. 4.1 показано дерево Т3 для 3-мерного булевого вектораb3 = (х, у, z).

Рис. 4.1. Бинарное дерево Т3

Пронумеруем слева направо все вершины n-го уровня от 0 до 2n – 1. Каждому вектору bn можно однозначно поставить в соответствие путь из корневой вершины О в вершину n–го уровня с порядковым номером вектора bn. Например, вектору (0,1,0) в рассмотренном примере соответствует путь из корневой вершины в вершину 2 (0102 = 210) по ребрам х = 0, у = 1, z = 0. Таким образом, бинарное дерево полностью описывает все 2n векторовbn.

3. Единичный n-мерный куб Вn. Единичным n-мерным кубом называют полный набор вершин, соответствующих векторамbn, в котором каждые две соседних вершины (которым соответствуют векторы, различающиеся ровно по одной координате) соединены отрезком (ребром). Обозначается единичный n-мерный куб как Вn. На рис. 4.2 показаны кубы В1, В2, а также плоские проекции кубов В3, В4.

Определение. Дана вершинаn в Вn. Множество вершин Вn {n}, для которых  (n,n) = r, называют сферой радиуса r. Множество {n} вершин Вn, для которых (n,n) r, называют шаром радиуса r.

Рис. 4.2. Единичные n-мерные кубы В1, В2 и плоские проекции кубов В3, В4

Вопросы для проверки знаний.

1. Есть ли принципиальное различие правил выполнения сложения и вычитания в десятичной системе счисления и других системах с постоянными основаниями?

2. Какой формат компьютерного представления чисел называют беззнаковым целым числом?

3. Какой формат компьютерного представления чисел называют целым числом со знаком?

4. Какой способ компьютерного представления целых чисел называют прямым кодом?

5. Какой способ компьютерного представления целых чисел называют дополнительным кодом?

6. Для каких целых чисел прямой код совпадает с дополнительным кодом?

7. Может ли целое число занимать в электронной памяти а) 4 бита, б) 6 бит, в) 8 бит, г) 10 бит?

8. По каким правилам осуществляется перевод беззнаковых байтовых целых чисел из прямого кода в дополнительный и обратно?

9. По каким правилам осуществляется перевод байтовых целых чисел со знаком из прямого кода в дополнительный и обратно?

10. В каких случаях вычитание байтовых беззнаковых целых чисел дает результат в прямом коде, а в каких – в дополнительном?

11. Что называют двоичным (булевым) n-мерным вектором?

12. Какую операцию называют инвертированием булевого вектора?

13. Какие числа называют порядковыми номерами булевых векторов?

14. Что называют лексикографическим порядком двоичных векторов?

Практические задания.

1. Сложить в системе с основанием 16 числа 233014 и 14358.

2.Сложить в восьмеричной системе числа 1011011012 и 9СВ16.

3. Выполнить вычитание (192  103) байтовых беззнаковых чисел с использованием дополнительного кода.

4. Найти порядковый номер двоичного вектора (0, 0, 1, 0, 1, 1, 0) в десятичной системе счисления.

5. Упорядочить по возрастанию порядковых номеров булевы векторы длины 5: (0, 0, 1, 0, 1), (0, 1, 1, 0, 1), (1, 0, 1, 0, 0).