- •Лекции по дискретной математике
- •Аннотация
- •Оглавление
- •Предисловие
- •Рекомендуемая литература
- •Начальные сведения
- •1. Множества
- •2. Отображения и соответствия
- •3. Отношения
- •4. Натуральные числа
- •1. Логика высказываний
- •1.1. Высказывания и операции над ними
- •1.2. Формулы логики высказываний
- •1.3. Равносильность формул
- •1.4. Принцип двойственности
- •1.5. Тождественно истинные формулы
- •1.6. Система натурального вывода
- •1.7. Принцип резолюций
- •2. Логика предикатов
- •2.1. Понятие предиката
- •2.2. Логические операции над предикатами
- •2.3. Кванторы
- •2.5. Выполнимые формулы и проблема разрешения
- •2.6. Логика предикатов и математическая практика
- •3. Формальные теории
- •3.1. Формализация в математике
- •3.2. Исчисление высказываний
- •3.3. Исчисление предикатов
- •4. Алгоритмы и вычислимость
- •4.1. Мощность множества
- •4.2. Счетные множества
- •4.3. Диагональный метод Кантора
- •4.4. Уточнение понятия алгоритма
- •4.5. Рекурсивные функции
- •4.6. Вычислимость и разрешимость
- •5. Булевы функции
- •5.1. Двоичные векторы
- •5.2. Понятие булевой функции
- •5.3. Булевы функции от одной и двух переменных
- •5.5. Полные системы булевых функций
- •6. Элементы теории кодирования
- •6.1. Двоичное кодирование
- •6.2. Векторное пространство {0,1}n
- •6.3. Отображения {0,1}n в {0,1}m
- •6.4. Блочные двоичные коды
- •6.5. Коды Хемминга
- •7. Функции выбора и их логическая форма
- •7.1. Понятие функции выбора
- •7.2. Примеры функций выбора
- •7.4. Логическое представление функций выбора
- •7.5. Основные свойства функций выбора
138
5.Булевы функции
5.1.Двоичные векторы
Любое положительное целое число имеет единственное двоичное представление (в виде суммы неповторяющихся степеней числа 2). Например:
7=1+2+4; 35=32+2+1.
В общем случае, чтобы получить двоичное представление целого числа x>0, можно воспользоваться следующим соотношением:
x = α0+2(α1+2(α2+…+2(αn−2+2αn−1)…),
где α0 – остаток от деления x на 2 (то есть α0=0, если x четно, и
α0=1, если x нечетно); α1 – остаток от деления на 2 числа x1=(x−α0)/2; α2 – остаток от деления на 2 числа x2=(x1−α1)/2; и т.д. Тогда
x = αn−1 2n-1+αn−2 2n-2+…+α1 2+α0.
Числа α0, α1,…, αn−1 называют двоичными цифрами числа x, а последовательность из нулей и единиц
αn−1αn−2…α1α0
–двоичной записью числа x. Пишут также
x= (αn−1αn−2…α1α0)2.
139
Пример.
25=1+2 12=1+2 (0+2 6)=1+2 (0+2 (0+2 3))= = 1+2 (0+2 (0+2 (1+2 1)),
откуда
25=1 1+0 2+0 4+1 8+1 16.
Самое большое число, которое можно записать с помощью n двоичных цифр, содержит в свой двоичной записи одни единицы. Это число равно
2n-1+2n-2+…+2+1=2n−1.
Декартову степень {0,1}n , n≥1, составляют всевозможные упорядоченные последовательности из нулей и единиц длины n. Мы будем называть такие последовательности n-мерными
двоичными векторами.
Произвольному n-мерному двоичному вектору можно сопоставить неотрицательное целое число, двоичными цифрами которого служат компоненты вектора
(α1,α2,…,αn)→ α1 2n-1+α2 2n-2+…+αn-1 2+αn.
Этим устанавливается взаимно однозначное соответствие между множеством всех n-мерных двоичных векторов и множеством неотрицательных целых чисел, меньших 2n. Таким образом, общее число n-мерных двоичных векторов равно 2n, то есть |{0,1}n|=2n.
Пример. При n=3 имеем:
(0,0,0) ↔ 0; (0,0,1) ↔ 1; (0,1,0) ↔ 2; (0,1,1) ↔ 3;
|
|
140 |
|
(1,0,0) ↔ 4; |
(1,0,1) ↔5; |
(1,1,0) ↔ 6; |
(1,1,1) ↔ 7. |
Пусть α=(α1,α2,…,αn) и β=(β1,β2,…,βn) – двоичные векторы.
Будем писать α≤β (или β≥α), если αi≤βi для всех i=1,2,…, n.
Если α≤β, но α≠β, будем писать α<β (последнее означает, что
αi.≤βi для всех i=1,2,…, n, и при этом хотя бы одно из этих неравенств строгое). Заметим, что имеются векторы α и β, для которых неверно ни α≤β, ни β≤α. Такие векторы будем называть несравнимыми.
Примеры. Двумерные двоичные векторы можно рассматривать как вершины единичного квадрата в двумерном евклидовом пространстве:
(0,1) |
(1,1) |
(0,0) |
|
(1,0) |
|
Векторы α и β связаны отношением ≤, если из вершины α можно пройти в вершину β по сторонам квадрата в направлении координатных осей (направо и вверх). Аналогично, трехмерные векторы соответствуют вершинам куба; векторы α и β связаны отношением ≤, если из вершины α можно пройти в вершину β по ребрам куба в направлении координатных осей.
141
5.2. Понятие булевой функции
Пусть U=U(X1,X2,…,Xn) – произвольная формула алгебры высказываний, содержащая n переменных. Оценка переменных такой формулы – это упорядоченная последовательность из 0 и 1 длины n, то есть n-мерный двоичный вектор. Каждой оценке переменных (x1,x2,…,xn) {0,1}n однозначным образом сопоставляется значение истинности u {0,1} высказывания, полученного из формулы U после соответствующей подстановки. Таким образом, мы получаем соответствие
(x1,x2,…,xn)→u, задающее отображение fU: {0,1}n→{0,1}, u=fU(x1,x2,…,xn). Такие отображения называют булевыми функциями. Непосредственно из определений вытекает, что формулы алгебры высказываний U=U(X1,X2,…,Xn) и V=V(X1,X2,…,Xn) равносильны в том и только том случае, когда функции fU и fV совпадают.
Булевы функции представляют интерес не только в связи с их «логическим» происхождением, но и сами по себе. Оттеняя это обстоятельство, введем следующие определения.
Переменные, пробегающие множество {0,1}, мы будем называть булевыми и обозначать буквами x, y, z, …, x1, x2, … . Функция от одной или нескольких булевых переменных, принимающая значение в множестве {0,1}, называется булевой.
Любую булеву функцию можно задать таблицей, подобной таблице истинности. Например, следующая таблица задает булеву функцию трех аргументов: