"Информатика (базовый уровень)", Гейн А.Г., Гейн А.А.
Булева функция связывает двоичные аргументы со значением 0 или 1. Она описывает работу логических условий, схем и программных проверок. Основной способ задания такой функции — таблица истинности, где перебраны все наборы значений переменных. С помощью операций НЕ, И и ИЛИ из простых выражений строят составные формулы, а совпадение результатов на всех наборах позволяет установить равенство функций.
Текст подготовлен нейронной сетью по теме параграфа и не заменяет учебник — важные факты и формулировки сверяйте с ним.
Булева функция — функция, аргументы и значение которой принимают только значения 0 или 1. Она описывает зависимость результата от двоичных условий. Такое описание нужно для анализа логики программ, электронных схем и высказываний.
Булевы переменные — переменные, принимающие значения 0 или 1 и используемые как аргументы булевой функции. Например, x = 1 может означать выполнение условия, а x = 0 — его невыполнение. С помощью таких переменных записывают исходные данные логической задачи.
Таблица истинности — таблица, в которой для всех наборов значений аргументов указано значение булевой функции. В ней видны не только исходные переменные, но и результат для каждой комбинации. Таблица помогает вычислять функцию и сравнивать разные формулы.
Логическая операция — правило получения нового булева значения из одного или нескольких исходных значений. К основным операциям относятся НЕ, И и ИЛИ. Из них составляют более сложные выражения, описывающие несколько условий одновременно.
Если функция имеет n двоичных аргументов, каждый аргумент может независимо принять 0 или 1. Для первого аргумента есть два выбора, для второго — ещё два, поэтому общее число комбинаций равно 2 · 2 · ... · 2 = 2ⁿ. Именно поэтому таблица истинности функции от n переменных содержит конечное число строк: по одной строке для каждого набора.
Операция НЕ работает с одним значением и меняет его на противоположное: НЕ 0 = 1, НЕ 1 = 0. Операция И объединяет два условия и даёт 1 только при одновременной истинности обоих. Операция ИЛИ даёт 1, если хотя бы одно из условий равно 1, поэтому из этих трёх операций можно строить выражения почти любой нужной сложности.
Чтобы вычислить составную функцию, сначала выписывают значения переменных в конкретном наборе. Затем выполняют действия внутри скобок, после чего переходят к оставшимся операциям с учётом приоритета: сначала НЕ, затем И, затем ИЛИ. Промежуточные результаты лучше записывать в отдельные столбцы, чтобы не потерять порядок вычислений и легче заметить ошибку.
Разные формулы могут иметь разный внешний вид, но задавать одну функцию. Критерий равенства один: при каждом наборе аргументов итоговые значения должны совпадать. Поэтому равенство проверяют составлением двух таблиц истинности или одной общей таблицы с двумя итоговыми столбцами и их последовательным сравнением.
В таблице собраны обозначения и правила, которые применяются при построении формул. Для составного выражения показан общий принцип: сначала получают промежуточные значения, затем итог. Последняя строка напоминает, сколько наборов нужно перебрать полностью.
| Операция | Обозначение | Смысл операции | Таблица значений |
|---|---|---|---|
| НЕ для одной переменной | НЕ x | Отрицание значения | x: 0, 1; НЕ x: 1, 0 |
| И для двух переменных | x И y | Оба условия должны быть истинны | 00 → 0, 01 → 0, 10 → 0, 11 → 1 |
| ИЛИ для двух переменных | x ИЛИ y | Истинно хотя бы одно условие | 00 → 0, 01 → 1, 10 → 1, 11 → 1 |
| Составное выражение с несколькими операциями | (x И y) ИЛИ НЕ z | Последовательное объединение результатов | Сначала x И y и НЕ z, затем ИЛИ |
| Количество наборов аргументов для функции от n переменных | 2ⁿ | Число строк с наборами аргументов | n = 1: 2; n = 2: 4; n = 3: 8 |
Условие: построить таблицу истинности функции F = (x И y) ИЛИ НЕ z. В формуле три переменные, поэтому нельзя ограничиться несколькими удобными примерами. Нужно проверить все возможные сочетания их значений.
Ответ: итоговый столбец строится после двух промежуточных столбцов, а таблица содержит ровно 8 строк. Полностью его значения: 1, 0, 1, 0, 1, 1, 1, 1 для наборов 000, 001, 010, 011, 100, 101, 110, 111.
Условие: определить, задают ли одну функцию формулы F = x ИЛИ (y И z) и G = (x ИЛИ y) И (x ИЛИ z). Скобки показывают разные пути вычисления, поэтому внешний вид формул ответа не даёт.
Ответ: F и G задают одну и ту же булеву функцию. Это пример закона распределения, который подтверждается не внешним сходством записей, а совпадением всех результатов.
Условие: по заданной таблице истинности составить формулу функции. Например, пусть единицы стоят в строках 001 и 110 для переменных x, y, z. Каждая такая строка должна быть отдельно описана условием, при котором функция равна 1.
Ответ: формула строится как ИЛИ всех конъюнкций, соответствующих строкам со значением 1. Такой способ позволяет получить выражение даже тогда, когда готовой закономерности сразу не видно.
Частая ошибка — воспринимать 0 и 1 как обычные числа и складывать или умножать их вместо применения И и ИЛИ. Так происходит из-за похожести обозначений, но смысл операций другой. Проверка: сверяйте результат с правилами — И даёт 1 только при двух единицах, а ИЛИ даёт 0 только при двух нулях.
Некоторые пропускают наборы аргументов в таблице. Причина обычно в невнимательном перечислении комбинаций, особенно при трёх и более переменных. Проверяйте себя формулой 2ⁿ и удобно располагайте наборы как двоичный счёт от 00...0 до 11...1.
Ещё одна ошибка — нарушение порядка действий или игнорирование скобок. Тогда промежуточное значение получается неверным, и ошибка переходит в итоговый столбец. Разбивайте формулу на части, сначала выполняйте НЕ, затем И и только потом ИЛИ, если скобки не задают другой порядок.
Наконец, формулы иногда объявляют одинаковыми или разными по их виду. Похожие записи могут давать разные результаты, а совсем разные — одну функцию. Составьте таблицу и сравните итоговые столбцы на каждом наборе аргументов.
До изучения булевых функций нужны понятия высказывания, истинности, переменной и простейших логических операций. Эти знания объясняют, что означают 0 и 1 и как читать формулы.
Тема используется в алгоритмах с условиями и программировании: логические выражения определяют, какую ветвь выполнить. Она также служит основой логических схем цифровых устройств, где операции реализуются электронными элементами.
Чем булева функция отличается от обычной числовой функции?
Обычная числовая функция может принимать и выдавать разные числа, а булева функция работает только со значениями 0 и 1. Поэтому её область аргументов и множество значений являются конечными.
Сколько строк должно быть в таблице истинности для функции от трёх переменных?
Для трёх переменных таблица должна содержать 2³ = 8 наборов аргументов. Обычно к ним добавляют столбцы промежуточных выражений и итоговый столбец функции.
Как правильно вычислять составную логическую формулу?
Сначала выполняют действия в скобках, затем учитывают приоритет операций: НЕ, И, ИЛИ. Удобно создавать отдельные столбцы для промежуточных результатов и переходить к следующему действию только после их заполнения.
Можно ли считать две разные по записи формулы одной и той же булевой функцией?
Да, если на каждом наборе значений переменных обе формулы дают одинаковый результат. Внешний вид записи не определяет функцию сам по себе.
Как по таблице истинности получить формулу булевой функции?
Для каждой строки, где функция равна 1, составляют выражение И, описывающее этот набор переменных. Затем все полученные выражения объединяют операцией ИЛИ и проверяют результат по исходной таблице.
§ 21. Булевы функции