
- •010400.62 Прикладная математика и информатика
- •Предисловие
- •1. Элементы математической логики
- •1.1. Логические связки и их таблицы истинности
- •1.2. Свойства логических операций
- •1.3. Функции алгебры логики и их свойства
- •1.4. Совершенные формы
- •1.5. Многочлены Жегалкина
- •Примеры решения задач
- •Упражнения
- •Вопросы для самоконтроля и повторения
- •2. Множества и отображения
- •2.1. Множества
- •2.2. Операции над множествами.
- •2.3. Свойства операций над множествами
- •2.4. Отображения множеств
- •Примеры решения задач
- •Упражнения
- •Вопросы для самоконтроля и повторения
- •3. Элементы комбинаторного анализа
- •Примеры решения задач
- •Упражнения
- •Вопросы для самоконтроля и повторения
- •4. Элементы теории графов
- •4.1. Основные понятия теории графов
- •4.2. Основные операции над графами
- •4.3. Матрицы графов
- •4.4. Мосты, деревья
- •4.5. Алгоритмы построения минимального остовного дерева
- •4.6 Задача о кратчайшем пути и алгоритм Дейкстры для ее решения
- •4.7. Дерево кратчайших путей
- •4.8. Гамильтоновы циклы и гамильтоновы графы
- •4.9. Эйлеровы циклы и эйлеровы графы
- •Примеры решения задач
- •Алгоритм Дейкстры-Прима
- •Упражнения
- •Вопросы для самоконтроля и повторения
- •5. Теория кодирования
- •5.1. Основные понятия теории кодирования
- •5.2. Проблема взаимной однозначности
- •5.3. Коды Хемминга
- •Примеры решения задач
- •Упражнения
- •Вопросы для самоконтроля и повторения
- •6. Теория автоматов
- •6.1. Основные понятия теории автоматов
- •6.2. Способы задания конечного автомата
- •Примеры решения задач
- •Упражнения
- •Вопросы для самоконтроля и повторения
- •7. Задания для самостоятельной работы
- •Библиографический список
- •Мария Николаевна Рыжкова Андрей Владимирович Макаров
- •010400.62 Прикладная математика и информатика
Примеры решения задач
1). Составить таблицу истинности для выражения:
Решение:
Расставим порядок действий:
1
-
2
-
3
-
4
-
5
-
6
-
X |
Y |
Z |
|
|
|
1 |
2 |
3 |
4 |
5 |
6 |
0 |
0 |
0 |
1 |
1 |
1 |
0 |
1 |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
1 |
1 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
1 |
0 |
1 |
1 |
0 |
1 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
0 |
0 |
1 |
0 |
1 |
0 |
1 |
1 |
1 |
0 |
0 |
0 |
1 |
1 |
1 |
0 |
1 |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
1 |
1 |
0 |
1 |
1 |
1 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
1 |
0 |
2). Доказать эквивалентность выражений
X (X Z) (Y Z) (X Y) (X Z).
Составим таблицы истинности для левой и правой частей
X |
Y |
Z |
X Z |
Y Z |
X (X Z) |
X (X Z) (Y Z) |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
X |
Y |
Z |
X Y |
X Z |
(X Y) (X Z) |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
1 |
1 |
1 |
1 |
0 |
1 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
Т.к. значения функций одинаковы, то эквивалентность функций доказана.
3). Функции f(x, y) и g(x, y) заданы таблицами истинности:
x |
y |
f(x, y) |
g(x, y) |
0 |
0 |
1 |
0 |
0 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
1 |
1 |
0 |
1 |
Построить таблицу истинности для суперпозиции
h (x1, x2, x3) = f(g(x1, x3), g(x2, x1)).
x1 |
x2 |
x3 |
g(x1, x3) = a |
g(x2, x1) = b |
h (x1, x2, x3) = f(a, b) |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
0 |
1 |
1 |
1 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
1 |
1 |
0 |
1 |
1 |
1 |
0 |
1 |
1 |
0 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
4). Упростить формулу:
f
= x
x
y
y
z
x
a). Применим свойство идемпотентности: x x = x, y y = y:
f = x y z x
b). Применим свойство коммутативности: x y = y x
f = x x y z
c). Применим свойство поглощения x x y = x:
f = x z
d). Применим свойства из п. 12: z = 1; 1 x = x:
f = x
5). Построить СДНФ и СКНФ формулы
f
(x, y,
z) = x
(
(
)).
Построим таблицу истинности:
x |
y |
z |
|
|
|
|
( |
x ( ( )) |
0 |
0 |
0 |
1 |
1 |
1 |
0 |
0 |
1 |
0 |
0 |
1 |
1 |
1 |
0 |
1 |
1 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
1 |
1 |
0 |
0 |
0 |
1 |
0 |
1 |
1 |
1 |
0 |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
1 |
1 |
1 |
0 |
1 |
0 |
1 |
0 |
0 |
Найдем СДНФ по таблице:
(0,
0, 0) -
(1,
0, 1) -
(1,
1, 0) -
СДНФ:
Теперь преобразуем формулу:
f (x, y, z) = x ( ( )):
a).
b).
y
(
)
= y
() = y(
)
=
=
y(
)
(zx
)
= y
zx
c). Раскроем скобки и используем свойство идемпотентности:
y
zx
=
d).
x
(
(
))
=
e). Применим закон де Моргана к инверсии во втором слагаемом, раскроем скобки и упростим, используя правило поглощения и идемпотентности:
f). Тогда получим:
g).
Получили СДНФ: f
(x,
y,
z)
=
.
Найдем СКНФ по таблице:
(0,
0, 1):
,
(0,
1, 0):
,
(0,
1, 1):
,
(1,
0, 0):
,
(1,
1, 1):
Тогда СКНФ:
f (x, y, z) = ( )( )( )( )( ).
Теперь преобразуем формулу f (x, y, z) = x ( ( )):
a).
b).
c).
Избавимся от отрицания и применим правила поглощения и идемпотентности:
Получили СКНФ:
f
(x, y,
z) = (
)(
)(
)(
)(
).
6). Построить полином Жегалкина функции f (x, y, z), заданной таблицей истинности:
x |
y |
z |
f (x, y, z) |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
1 |
0 |
1 |
0 |
0 |
0 |
1 |
1 |
0 |
1 |
0 |
0 |
1 |
1 |
0 |
1 |
0 |
1 |
1 |
0 |
0 |
1 |
1 |
1 |
0 |
Первый способ:
a).
Построим СДНФ:
b).
Заменим на :
c). Упростим, используя операцию дистрибутивности и тождество x=1:
d). Заменим = x 1:
e). Заменим x x = 0, x 0 = x
Второй способ:
a). В пятом столбце строится треугольник Паскаля:
- первая строка заполняется самой функцией
- значения второй строки получаются суммой двух элементов первой строки:
1 1 = 0, 1 0 = 1, 0 0 = 0, 0 1 = 1, 1 0 = 1, 0 0 = 0, 0 0 = 0,
- так же заполняем все остальные строки.
x |
y |
z |
f (x, y, z) |
Треугольник Паскаля |
Слагаемые |
0 |
0 |
0 |
1 |
1 1 0 0 1 0 0 0 |
1 |
0 |
0 |
1 |
1 |
0 1 0 1 1 0 0 |
z |
0 |
1 |
0 |
0 |
1 1 1 0 1 0 |
y |
0 |
1 |
1 |
0 |
0 0 1 1 1 |
yz |
1 |
0 |
0 |
1 |
0 1 0 0 |
x |
1 |
0 |
1 |
0 |
1 1 0 |
xz |
1 |
1 |
0 |
0 |
01 |
xy |
1 |
1 |
1 |
0 |
1 |
xyz |
b). Заполним последнюю колонку конъюнкциями элементов, которые в первых трех столбцах равны 1.
c).
Соединим знаком
те конъюнкции, строки которых с левой
стороны треугольника равны 1:
3-Треттий способ:
a). Построим многочлен Жегалкина для функции трех переменных:
f(x, y, z) = a0 a1x a2y a3z a4xy a5xz a6yz a7xyz
и систему уравнений, позволяющих найти коэффициенты:
f(0, 0, 0) = a0
f(0, 0, 1) = a0 a3
f(0, 1, 0) = a0 a2
f(0, 1, 1) = a0 a2 a3 a6
f(1, 0, 0) = a0 a1
f(1, 0, 1) = a0 a1 a3 a5
f(1, 1, 0) = a0 a1 a2 a4
f(1, 1, 1) = a0 a1 a2 a3 a4 a5 a6 a7
b). Приравняем к значениям функции и вычислим коэффициенты:
a0 = 1,
a0 a3 = 1, 1 a3 = 1, a3 = 0,
a0 a2 = 0, 1 a2 = 0, a2 = 1,
a0 a2 a3 a6 = 0, 1 1 0 a6 = 0, a6 = 0,
a0 a1 = 1, 1 a1 = 1, a1 = 0,
a0 a1 a3 a5 = 0, 1 0 0 a5 = 0, a5 = 1,
a0 a1 a2 a4 = 0, 1 0 1 a4 = 0, a4 = 0,
a0 a1 a2 a3 a4 a5 a6 a7 = 0,
1 0 1 0 0 1 0 a7 = 0, a7 = 1.
c). Выпишем коэффициенты и подставим их в функцию:
a0 = 1, a1 = 0, a2 = 1, a3 = 0, a4 = 0, a5 = 1, a6 = 0, a7 = 1.