Лабораторная работа по теме
«Булевы функции одной и нескольких переменных»
Булевы функции одной переменной
Х | f0 | f1 | f 2 | f 3 |
Обозначение | х | х | ||
Название | Константа 0 | х | Отрицание х | Константа 1 |
Булевы функции двух переменных
Переменные | Булевы функции | ||||||||||||||||
x1 | x2 | f0 | f1 | f 2 | f 3 | f4 | f5 | f6 | f7 | f8 | f9 | f10 | f11 | f12 | f13 | f14 | f15 |
Опишем некоторые наиболее часто используемые функции из приведенного списка.
Функция f0(x1, х2) = 0 – константа нуль.
Функция f1(x1, х2) = – конъюнкция (логическое умножение). Ей соответствует союз «и»: она истинна тогда и только тогда, когда истинно и первое высказывание, и второе высказывание.
Функция f3(x1, х2) = .
Функция f5(x1, х2) = .
Функция f6(x1, х2) = – сложение по модулю два (исключающее «или»). Ей соответствует союз «или…или»: она истинна тогда и только тогда, когда истинно или одно, или другое высказывание, но не оба одновременно.
Функция f7(x1, х2) = – дизъюнкция. Ей соответствует союз «или»: она истинна тогда и только тогда, когда истинно как минимум одно из высказываний (или оба одновременно).
Функция f8(x1, х2) = – стрелка Пирса. Является отрицанием дизъюнкции, поэтому ее также называют «не или». Она истинная тогда и только тогда, когда оба высказывания ложны.
Функция f9(x1, х2) = x 1 ~ x 2 – эквивалентность. Является отрицанием сложения по модулю 2. Она истинна тогда и только тогда, когда оба высказывания одинаковы (либо оба истинны, либо оба ложны).
Функция f13(x1, х2) = – импликация (логическое следование). Читается «если x 1, то х 2» или «из x 1 следует х 2». Играет очень важную роль в логике. Смысл ее таков: из лжи может следовать как ложь, так и истина; из истины следует только истина.
Функция f14(x1, х2) = – штрих Шеффера. Является отрицанием конъюнкции, поэтому ее также называют «не и». Она ложна тогда и только тогда, когда оба высказывания истинны. Имеет логический смысл «кто-то лжет»: или первое высказывание, или второе, или оба ложны.
Функция f15(x1, х2) = 1 – константа единица.
В Mathcad средства работы с булевыми функциями собраны на панели инструментов «Булева алгебра», которую можно открыть, выбрав последовательность пунктов меню Вид/Панели инструментов/Булева алгебра:
Здесь присутствуют как стандартные математические отношения сравнения (=, <, >, ≤, ≥, ≠), так и некоторые из рассмотренных выше булевых операций (, ˄, ˅, Å). Остальные булевы функции можно описать через них как посредством применения равносильных формул, так и с помощью условной функции if. Функция if(cond,y,n) возвращает значение y, если справедливо логическое условие cond (т.е. логическая переменная cond=1), и значение n, если условие cond не выполняется.
Рассмотрим, как в Mathcad можно описывать и применять булевы функции. Зададим логические переменные x, y и выведем для них таблицы истинности встроенных в Mathcad булевых функций:
Опишем теперь функцию equiv(a. b), которая задает булеву функцию «эквивалентность», через имеющиеся булевы функции:
Примечание. Результат выполнения булевых функций представляет собой ее вектор значений для заданных наборов значений логических переменных x и y.
Булеву функцию «импликация» удобно описывать, используя функцию if:
Значение данной функции будет равно 0, если первый аргумент а равен 1, а второй аргумент b равен 0. Во всех остальных случаях импликация равна 1, как требует ее таблица истинности.
Примечание. Необходимо обратить внимание, что при записи условий внутри функции if в качестве знака = выбирают соответствующий значок, расположенный на панели инструментов «Булева алгебра». Его можно также вводить с клавиатуры, набирая сочетание клавиш Ctrl + =. На экране это отображается как «жирное» равенство.
Опишем также штрих Шеффера и стрелку Пирса:
Используя эти основные булевы функции, мы можем строить различные формулы, получая тем самым сложные высказывания, и вычислять их истинность, например: