- •Министерство образования и науки российской федерации федеральное агентство по образованию
- •Захарова ю.Ф. Дискретная математика и ее приложения
- •Введение
- •Глава 1. Введение в теорию множеств.
- •1.1. Основные определения.
- •1.2. Задание множеств
- •1.3. Операции над множествами
- •1.4. Разбиения и покрытия
- •1.5. Представление множеств в эвм.
- •1.5.1. Включение множеств.
- •1.5.2. Объединение множеств.
- •1.5.3. Пересечение множеств.
- •Глава 2. Булева алгебра.
- •2.1. Основные элементарные функции.
- •2.2. Основные элементарные тождества.
- •2.3. Формы представления булевых функций.
- •2.4. Минимизация булевых функций.
- •2.4.1. Метод Куайна.
- •2.4.2. Метод Карно.
- •Глава 3. Исчисление высказываний и исчисление предикатов.
- •3.1. Исчисление высказываний.
- •3.2. Исчисление предикатов.
- •Глава 4. Теория сжатия текстовой информации.
- •4.1. Метод Хаффмена
- •4.1.1. Общие положения
- •4.1.2. Краткое описание метода Хаффмена.
- •4.1.3. Пример использования метода Хаффмена.
- •4.2. Метод Зива Лемпеля (lz-метод)
- •4.2.1. Основные определения
- •4.2.2. Краткое описание lz-метода
- •4.2.3. Пример lz-метода
- •4.3. Метод Зива-Лемпеля-Велча (lzw-метод)
- •4.3.1. Общие положения
- •4.3.2. Краткое описание lzw-метода
- •4.3.3. Пример lzw-метода.
- •4.4. Метод Барроуза-Уиллера.
- •4.4.1. Общие положения.
- •4.4.2. 1 Этап. Преобразование Барроуза-Уилера.
- •4.4.3. 2 Этап. Mtf–метод.
- •4.4.4. 3 Этап. Статистический кодер.
- •4.4.5. Модификации различных этапов.
- •4.4.6. Сравнение алгоритмов сжатия на базе bwt с другими методами.
- •Глава 5. Теория сжатия графической информации. Введение.
- •5.2. Волновой метод (wavelet-метод)
- •5.2.1. Описание метода
- •5.2.2. Пример волнового метода
- •5.3. Дискретное косинус-преобразование (дкп-метод).
- •5.3.1. Описание метода.
- •5.3.2. Пример дкп-метода.
- •5.4. Классический алгоритм jpg.
- •5.5. Фрактальный алгоритм.
- •Глава 6. Введение в криптографию. Введение.
- •6.1. Методы перестановки
- •6.1.1. Матрицы
- •6.1.2. Маршруты Гамильтона
- •6.1.3. Электрический монтаж
- •6.1.4. Особенности перестановки
- •6.2. Методы подстановки
- •6.2.1. Вектор замен
- •6.2.2. Таблицы Вижинера
- •6.3. Метод замены. Использование алгебры матриц.
- •6.4. Аддитивные методы
- •6.5. Стеганология
- •6.6. Ключ. Основные понятия, связанные с ключом и алгоритмом.
- •6.6.1. Основные понятия.
- •6.6.2. Ключ.
- •6.6.3. Случайные и псевдослучайные числа.
- •6.6.4. Действия по шифрованию информации.
- •6.7. Блочные и поточные шифры.
- •6.8. Алгоритмы des, Triple des и их заменяющие.
- •6.8.2. Алгоритм Triple des
- •6.8.3. Коммерческие алгоритмы, заменившие des
- •6.9. Системы с открытым ключом.
- •6.10. Электронная подпись.
- •6.11. Взлом защищенных файлов.
- •6.11.1. Атака на ключ
- •6.11.2. Атака на алгоритм.
- •6.11.3. Скомпрометированный пароль.
- •6.11.4. Подделка открытых ключей.
- •6.11.5. Не до конца удаленные файлы.
- •6.11.6. Вирусы и закладки.
- •6.11.7. Виртуальная память.
- •6.11.8. Нарушение режима физической безопасности. Радиоатака. Фальшивые даты подписи.
- •6.11.10. Утечка информации в многопользовательской среде.
- •Содержание
- •Глава 6. Введение в криптографию. 1
1.5.2. Объединение множеств.
Входные параметры: проверяемые предварительно упорядоченные конечные множества А мощности и В мощности .
Выходные
параметры:
конечное упорядоченное множество С
каждый элемент которого удовлетворяет
условию:
.
Указатели в списках А и В расположены на первых элементах списков ( ). Список С пуст (
).
Пока список А не пуст и список В не пуст
(
и
)
выполнять
цикл: whileЕсли Аi < Bj, то
,
,
;Если Аi > Bj, то ,
,
,
перейти к 2;Если Аi = Bj, то , , , , перейти к 2;
End while.
Если , но , то
и пока
выполнять
цикл: while,
,
;End while.
Если , но
,
то
и пока
выполнять
цикл: while,
,
;End while.
1.5.3. Пересечение множеств.
Входные параметры: проверяемые предварительно упорядоченные конечные множества А мощности и В мощности .
Выходные
параметры:
конечное упорядоченное множество С
каждый элемент которого удовлетворяет
условию:
.
Указатели в списках А и В расположены на первых элементах списков ( ). Список С пуст ( ). Пока список А не пуст и список В не пуст ( и ) выполнять цикл: while
Если Аi < Bj, то ;
Если Аi > Bj, то , перейти к 2;
Если Аi = Bj, то , , , , перейти к 2;
End while.
Глава 2. Булева алгебра.
2.1. Основные элементарные функции.
Логически операцию объединения двух множеств можно охарактеризовать словами: элемент х принадлежит множеству А или множеству В. При этом связка “или” одновременно означает и связку “и”. Факт принадлежности элемента х множеству А обозначается как х А . Поэтому то, что х принадлежит А или/и В, выражается формулой.
,
где — символ логической связки или, которая называется дизъюнкцией.
С точки зрения логики, вместо одной предметной переменной х удобно ввести две логические переменные х1 и х2. Областью определения х1 и х2 будут уже не числа натурального ряда, а только два логических значения: 1 для истинного значения и 0 для ложного.
Рассмотрим два
множества:
и
.
Допустим, что
х=7.
Поскольку это число не принадлежит ни
множеству А, ни множеству В, то и
логические значения переменных будут:
и
.
Эта комбинация переменных отвечает
классу
.
Теперь предположим, что выбрано число
4. Оно входит как в А, так и в В. Следовательно,
и
,
что соответствует классу
.
Существуют еще два варианта, например
для числа х=6
имеем
,
,
и для x=8
— значения
,
,
которые отвечают классам
и
.
Переменные х1 и х2 определяют некоторую логическую функцию:
y=f(х1,х2),
которая в случае дизъюнкции может быть записана как пропозиционная связка:
.
Легко усматривается,
что число 7 не входит в объединенное
множество А
В,
поэтому при
и
значение логической функции у
равно нулю. Когда же выбираются числа
4, 6 или 8, то все они непременно попадут
в заштрихованную область диаграммы,
следовательно, при этих значениях
функция
равна единице. Все это удобно оформить
таблицей (табл. 1), которую называют
таблицей
истинности.
Между таблицей истинности и диаграммой Эйлера — Венна существует взаимно однозначное соответствие. Поэтому число единиц для у всегда будет совпадать с числом заштрихованных областей на диаграмме Четыре комбинации аргументов х1 и х2 будут отвечать четырем областям Сi. Кроме того, нетрудно подсчитать, что число комбинаций нулей и единиц для функции у равно 16, значит и общее число возможных операций на двух множествах тоже равно этому же числу.
Рассмотрим пересечение тех же множеств.
А В={1, 2, 4, 6} {2, 3, 4, 8, 9}={2, 4}=С3,
То, что х принадлежит одновременно двум множествам А и В, можно представить выражением
где - символ логической связки “и”, которая называется конъюнкцией и может обозначаться также значком &. Если в таблице истинности для конъюнкции (табл. 1.) все нули заменить единицами, а все единицы — нулями, то в итоге получим таблицу истинности для дизьюнкции.
Этот факт определяет взаимную двойственность конъюнкции и дизъюнкции.
Функция называется двойственной к данной, если на наборах, противоположных к данным, она принимает значение, противоположное данному.
Для любой логической
операции можно найти двойственную.
Представим себе операцию, в результате
которой окажутся заштрихованными
области
и
,
образующие множество А.
Затем еще одну операцию, которая охватит
две другие области
и
,
не входящие в А,
что обозначается как
.
Если объединить заштрихованные области
на обеих диаграммах, то получим все
множество 1; пересечение же А
и
даст пустое множество 0, в котором не
содержится ни одного элемента:
,
Аналогичные равенства выполняются и для логических функций, которые имеют соответствующие названия.
-
тавтология,
- противоречие.
Тавтология — это всегда истинное логическое выражение, какое бы при этом значение ни принимала переменная х. Противоречие, напротив, всегда ложное выражение.
Множество А
дополняет
множество
до фундаментального множества U
(или 1), отсюда название, дополнительное
множество А или дополнение
как операция. Дополнение к логической
переменной х,
т.е.
(не-х),
называется в логике чаще всего отрицанием
х.
Тогда могут быть введены следующие функции:
- стрелка Пирса,
- штрих Шефера.
Разностью между двумя множествами являлась совокупность элементов первого множества, которые не принадлежали второму. Т.е., продолжая предыдущий пример,
.
Тогда соответствующая булева функция, представленная в табл. 1, будет иметь вид:
.
Дополнением к разности служит импликация:
.
Замечание.
Если утверждается, что “элементы
множества А
включены в множество В”,
то область
обязательно должна быть заштрихована,
так как она соответствует истине, а
область
с такой же необходимостью должна быть
оставлена белой, поскольку ей отвечает
прямо противоположное утверждение.
Относительно областей
и
,
находящихся в А,
заметим следующее. Мы не имеем права
оставлять их белыми, поскольку они
прямо не противоречат первому утверждению;
но, так как логика двузначная,
мы обязаны все же области, попадающие
в
,
заштриховать. В трехзначной
логике эти области должны быть
заштрихованы как-то иначе, а в таблице
истинности для импликации (табл. 1) на
месте первой и третьей строк для
должны стоять не 1, а 1/2, что отвечает
состоянию неопределенности.
При этом в классической
двузначной логике
импликация передается словами “если
А, то В”.
Симметрическая разность двух множеств дает нам следующую булеву функцию:
,
называемую в литературе “сложение по модулю 2” и дополнением к ней будет являться функция эквивалентности:
.
Табл. 1. Таблица истинности основных элементарных функций.
|
|
|
|
|
|
|
|
|
|
|
0 |
0 |
1 |
0 |
0 |
1 |
0 |
1 |
1 |
1 |
0 |
0 |
1 |
1 |
0 |
1 |
1 |
1 |
0 |
1 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
1 |
1 |
0 |
1 |
1 |
1 |
0 |
1 |
0 |
0 |
0 |
