- •Раздел I. Основы теории множеств. Системы счисления. Комбинаторика
- •Глава 1. Множества, операции с ними. Алгебра множеств
- •1.1. Элементы и множества
- •1.2. Отображения, функции, предикаты
- •1.3. Метод математической индукции
- •1.4. Способы задания множеств
- •Перечисление
- •Задание с помощью логических функций (предикатов)
- •1.5. Предметные операции на множествах. Формула множества
- •1.6. Операции сравнения — логические операции с множествами
- •1.7. Алгебра множеств. Ее формулы, теоремы и законы
- •Глава 2. Мощность множеств
- •2.1. Мощность. Счетные множества
- •2.2. Множества мощности континуум
- •Глава 3. Бинарные отношения на множествах
- •3.1. Определение и способы задания отношений
- •3.1.1. Перечисление (список пар)
- •3.1.2. Матрица
- •3.1.3. Задание отношений при помощи предикатов
- •3.2. Аксиомы на отношениях
- •3.3. Основные типы отношений
- •3.3.1. Отношение эквивалентности
- •3.3.2. Отношение нестрогого (частичного) порядка
- •3.3.3. Отношение строгого порядка
- •3.4. Проверка типов отношений. Решение задач
- •Контрольные задания по теме
- •I. Общая теория множеств
- •Глава 4. Системы счисления
- •4.1. Позиционные системы счисления с постоянными основаниями. Представления целых чисел Рассмотрим общие правила представления количественных величин в позиционных системах счисления.
- •4.2. Переводы целых чисел в позиционных системах счисления
- •4.2.1. Перевод целых чисел из произвольной системы с постоянным основанием р 10 в десятичную систему
- •4.2.2. Перевод целых чисел из десятичной системы счисления в системы с произвольными постоянными основаниями p 10
- •4.2.5. Представление двоичной байтовой информации в шестнадцатеричной и десятичной системах
- •4.3. Дробные и смешанные числа в позиционных системах счисления с постоянными основаниями
- •4.3.1 Перевод правильных десятичных дробей в систему счисления с иным основанием p 10
- •4.3.2 Перевод правильных дробей из системы с основанием p 10 в десятичную систему счисления
- •4.4. Арифметические действия с целыми числами в системах с произвольными основаниями. Их компьютерное представление
- •4.4.1 Сложение
- •4.4.2 Вычитание
- •4.4.3. Прямой и дополнительный коды целых чисел. Их представление в памяти компьютера, сложение и вычитание
- •4.5. Двоичные (булевы) векторы
- •4.6. Смешанные позиционные системы счисления. Факториальная система
- •4.6.1. Перевод целых чисел из десятичной системы в смешанную с основаниями р0, р1, ... , рk
- •Глава 5. Комбинаторика
- •5.1. Основная задача комбинаторики. Характеристики комбинаторных задач
- •5.2. Основные правила подсчета чисел комбинаторных множеств
- •5.2.1. Правило сложения
- •5.2.2. Формула включений-исключений
- •5.2.3. Правило умножения
- •5.2.4. Правило учета сходства и различия
- •5.3. Размещения (размещения с повторениями)
- •5.4. Перестановки и размещения без повторений различных объектов. Упорядоченность перестановок
- •5.5. Перестановки и размещения без повторений групп одинаковых объектов
- •5.6. Сочетания
- •5.7. Понятие вероятности
- •Контрольные задания по теме
- •II. Системы счисления. Комбинаторика
4.5. Двоичные (булевы) векторы
Двоичным (булевым) n-мерным вектором называют набор из n чисел (b1, b2, ..., bn), каждое из которых может принимать только значения в двоичной системе счисления – 0 или 1.
Двоичный вектор являетсяобратным (инвертированным) к , если он образован иззаменой всех нулей единицами, а единиц – нулями.
Например, если = (0, 1, 1, 1, 0, 1), то = (1, 0, 0, 0, 1, 0).
Если в записи двоичного вектора длины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). Наибольшим является число 2n – 1, которому соответствует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).