Вы находитесь на странице: 1из 19

Министерство науки и высшего образования

Российской Федерации
Московский физико-технический институт
(национальный исследовательский университет)
Заочная физико-техническая школа

ИНФОРМАТИКА и ИКТ

Алгебра логики

Задание №2 для 10-х классов

(2023 – 2024 учебный год)

г. Долгопрудный, 2023
2
Составитель: Д.К. Колмогоров, кандидат физико-математических наук, асси-
стент кафедры математического моделирования ИПМ им. М.В.Келдыша РАН.

Информатика: задание №2 для 10-х классов (2023-2024 учебный год),


2023, 19 с.

Составитель:
Колмогоров Дмитрий Константинович

Заочная физико-техническая школа


Московского физико-технического института
(национального исследовательского университета)

Институтский пер., 9, г. Долгопрудный, Москов. обл., 141700,


ЗФТШ, тел. (495) 408-51-45 – заочное отделение,
тел. (498) 744-63-51 – очно-заочное отделение,
тел. (498) 744-65-83 – очное отделение.

e-mail: edu@zftsh.online

Наш сайт: https://zftsh.online/

© МФТИ, ЗФТШ, 2023

Все права защищены. Воспроизведение учебно-методических материалов и


материалов сайта ЗФТШ в любом виде, полностью или частично, допускается
только с письменного разрешения правообладателей.
3
§1. Введение в алгебру логики

Алгебра логики является частью активно развивающейся сегодня


науки – дискретной математики. Дискретная математика – это тот раз-
дел математики, где не используется понятие непрерывности.
Термин «дискретный» в русском языке имеет следующие значения:
1) Состоящий из отдельных частей.
2) Изменяющийся между несколькими стабильными состояниями.
3) Существующий лишь в отдельных точках.
Для того, чтобы лучше понять этот термин, рассмотрим следующий
пример. Мы знаем, что график некоторой функции (например, y=x2)
является непрерывной линией (параболой), если аргумент функции
принимает все значения из множества действительных чисел. А теперь
представим, что x может принимать только значения из множества це-
лых чисел. В этом случае график будет представлять собой бесконеч-
ное количество отдельных точек, располагающихся на координатной
плоскости в определённом порядке. В расположении точек будет уга-
дываться парабола, но непрерывной линии мы не увидим. Вместо неё
мы увидим дискретную структуру.
В прошлом задании мы говорили о представлении чисел в компью-
тере, и знаем, что каждое число представляется в виде определённой
последовательности значений битов. В каждом бите может храниться
ноль или единица. То есть, по сути, представление чисел (в будущем
мы увидим, что не только чисел, а вообще любых данных) в компьюте-
ре является дискретной структурой. Поэтому, изучение дискретных
структур – важная часть информатики. В этом задании мы будем изу-
чать наиболее простую дискретную структуру, которая называется вы-
сказыванием.
Определение 1. Высказывание – это повествовательное предложе-
ние, в отношении которого можно судить о его истинности либо лож-
ности.
Например, предложение: «Я – твой друг» является высказыванием, а
предложение: «Положи это сюда!» высказыванием не является, по-
скольку не является повествовательным предложением.
Истинность или ложность каждого высказывания зависит от трак-
товки его содержания. Например, высказывание: «Город Москва – сто-
лица России» является истинным, а высказывание: «Город Санкт-
Петербург стоит на реке Лене» является ложным.
4
Определение 2. Высказывание называется простым, если никакая
его часть сама по себе не является высказыванием.
Высказывание: «Эта шляпа – красная» является простым, в то время
как высказывание: «Если прямая пересекает одну из двух параллель-
ных прямых, то она пересекает и вторую» является примером сложного
высказывания, которое, по сути, состоит из трёх простых: «две прямые
параллельны», «прямая пересекает одну из двух прямых», «прямая пе-
ресекает другую прямую». В сложном высказывании простые высказы-
вания соединяются при помощи логических связок. В рассмотренном
выше примере логической связкой является союз «если то».
Алгебра логики изучает структуру сложных логических высказыва-
ний и способы установления их истинности при помощи алгебраиче-
ских методов. Причём, конкретное содержание высказываний предме-
том изучения алгебры логики не является, и, соответственно, интересо-
вать нас в дальнейшем не будет.
В прошлом задании при изучении основ программирования мы
столкнулись с понятиями констант и переменных. Константа – это не-
которое конкретное значение, а переменная – это объект, который мо-
жет менять свои значения и которому можно присваивать различные
значения. Этими же понятиями пользуется и алгебра логики, чтобы аб-
страгироваться от конкретных содержаний высказываний. Будем счи-
тать, что любое простое высказывание – это есть константа. И введём
понятие переменной в алгебре логики.
Определение 3. Переменной в алгебре логики называется объект,
имеющий уникальное имя, и значением которого может являться лю-
бое простое высказывание.
В отличие от языков программирования в алгебре логики нет огра-
ничений при именовании переменных. Переменные могут иметь абсо-
лютно любые имена, но чаще всего их обозначают заглавными или
строчными латинскими буквами (A, B, C, x, y, z, s), либо последова-
тельностью, состоящей из заглавной или строчной латинской буквы и
целого числа (A1, A2, A4, A10000000). Ещё одно отличие от языков
программирования заключается в том, что после присвоения перемен-
ной высказывания можно говорить об её истинности либо ложности. То
есть существует два понятия «значение логической переменной». С од-
ной стороны – это конкретное высказывание, а с другой стороны – это
истина, либо ложь.
5
Определение 4. Логическим выражением называется объект, состо-
ящий из логических переменных и логических операций и имеющий
значение истина, либо ложь. Процесс построения логического выра-
жения по сложному высказыванию называется формализацией выска-
зывания.
В процессе формализации нужно сделать следующие действия: вы-
делить из сложного высказывания простые и превратить их в логиче-
ские переменные. Затем каждая логическая связка превращается в ло-
гическую операцию. В описанных действиях остаётся два непонятных
момента. Первый – что такое логическая операция, и второй – каким
образом логические связки превращаются в логические операции. Бу-
дем последовательно отвечать на эти вопросы.
Для того чтобы определить операцию, необходимо указать количе-
ство операндов (объектов, над которыми выполняется операция) их тип
и результат выполнения операции. Логические операции чаще всего
имеют два операнда, как и математические. Однако мы также будем
изучать операции, которые имеют всего один операнд. Независимо от
количества операнды должны быть логического типа, то есть иметь
значение истина, либо ложь. Результатом логической операции также
является логическое значение – истина или ложь. Для того чтобы не-
много сократить запись, условимся в дальнейшем логическое значение
«истина» обозначать единичкой (1), а логическое значение – «ложь» –
нулём ( 0 ).
Очевидно, что если у операции два операнда, и значением каждого
является 0 или 1, то существует всего четыре набора значений операн-
дов (00, 01, 10, 11). Для каждого из наборов необходимо определить
значение логической операции. Удобно это представлять в виде табли-
цы. Таблицы соответствия значений логических операций набору зна-
чений операндов называются таблицами истинности.
§2. Логические операции. Формализация высказываний
Сейчас мы познакомимся с шестью основными логическими опера-
циями. Каждая из них имеет несколько названий и обозначений.
6
Названия операции Возможные обозначения
Отрицание, инверсия.
 ,,
Конъюнкция, логическое умно- &, , , по аналогии с ал-
жение, операция И, операция AND. гебраическим умножением
может никак не обозначаться

Дизъюнкция, нестрогая дизъюнк- |,,+


ция, логическое сложение, операция
ИЛИ, операция OR.
Строгая дизъюнкция, раздели- , 
тельная дизъюнкция, исключающее
ИЛИ, сложение по модулю 2.
Эквивалентность, эквиваленция, , 
равенство, равнозначность.
Импликация, следование, след- , 
ствие
Теперь для того чтобы строго определить эти логические операции,
нам нужно для каждой из них выписать таблицу истинности. Все пере-
численные операции кроме отрицания имеют два операнда. Знак опе-
рации в выражениях пишется между операндами (как в алгебре чисел).
Операция отрицания имеет один операнд и в выражениях записывается
либо в виде черты над операндом, либо в виде символа «приставка»
слева от операнда.
Для того чтобы не путаться и гарантированно перебрать все воз-
можные комбинации значений операндов, принято записывать их в
лексикографическом порядке (условно считается, что «ложь» < «исти-
на»).
Таблица истинности для конъюнкции
Первый операнд Второй операнд Значение операции
0 0 0
0 1 0
1 0 0
1 1 1
7
Таблица истинности для дизъюнкции

Первый операнд Второй операнд Значение операции


0 0 0
0 1 1
1 0 1
1 1 1
Таблица истинности для строгой дизъюнкции

Первый операнд Второй операнд Значение операции


0 0 0
0 1 1
1 0 1
1 1 0
Таблица истинности для эквивалентности

Первый операнд Второй операнд Значение операции


0 0 1
0 1 0
1 0 0
1 1 1
Таблица истинности для импликации

Первый операнд Второй операнд Значение операции


0 0 1
0 1 1
1 0 0
1 1 1
Таблица истинности для отрицания

Значение операнда Значение операции


0 1
1 0

Теперь осталось лишь установить соответствие между логическими


операциями и логическими связками в русском языке.
Логическая операция Логические связки в русском языке
8
Отрицание Неверно что…
Конъюнкция и, а, но, а также, при этом, одновремен-
но с этим, хотя
Дизъюнкция Или
Строгая дизъюнкция или, либо
Эквивалентность Тогда и только тогда когда, необходимо
и достаточно чтобы
Импликация если то, необходимо чтобы, достаточно
чтобы
Обратите внимание, что союз ИЛИ может означать, как строгую, так
и нестрогую дизъюнкцию. Его интерпретация зависит от содержания
(!!!) высказывания.
Пример 1. Рассмотрим высказывание: «Мы идём в кино в субботу
или в воскресение». Здесь два простых высказывания: «Мы идём в ки-
но в субботу» и «Мы идём в кино в воскресение». Между ними стоит
союз ИЛИ, который можно интерпретировать двояко. В данном случае
очевидно, что мы можем пойти в кино и в субботу, и в воскресение,
поэтому дизъюнкция будет нестрогая. Возьмём две логические пере-
менные – p и q и присвоим им простые высказывания. Тогда исходное
высказывание в формализованном виде будет выглядеть, как pq.
Пример 2. Рассмотрим высказывание: «Я сейчас на севере Москвы
или на юго-западе Москвы». Здесь тоже два простых высказывания,
которые связаны союзом ИЛИ. Но в этом случае союз ИЛИ интерпре-
тируется, как строгая дизъюнкция, поскольку нельзя одновременно
находиться в двух местах. Таким образом, если снова взять логические
переменные p и q, то получится следующая логическая формула: pq
Пример 3. Рассмотрим высказывание: «Для того чтобы четырёх-
угольник был квадратом, необходимо, чтобы все его стороны были
равны». Здесь два простых высказывания: «Четырёхугольник является
квадратом» и «Все стороны четырёхугольника равны». Присвоим их
соответственно логическим переменным p и q. Логическая связка
«необходимо, чтобы» - это импликация. Весь вопрос в том, что из чего
следует. (Какая запись правильная: pq или qp)? Импликация лож-
на только в единственном случае: когда левый операнд имеет значение
«истина», а правый – «ложь». Рассмотрим все возможные значения
операндов и проанализируем, какая из ситуаций невозможна.
9
1) p и q ложны. Это значит, что четырёхугольник не является квад-
ратом и его стороны не равны. Это возможная ситуация.
2) p – ложно, q – истинно. Это значит, что четырёхугольник не явля-
ется квадратом, но стороны у него равны. Это возможно (ромб).
3) p – истинно, q – истинно. Это значит, что четырёхугольник явля-
ется квадратом и стороны у него равны. Это возможная ситуация.
4) p – истинно, q – ложно. Это значит, что четырёхугольник является
квадратом, но стороны у него не равны. Это невозможная ситуация.
Анализ ситуаций показывает, что левым операндом импликации
должна быть переменная p. Таким образом, в формализованном виде
исходное высказывание выглядит как pq.
Очень часто вместо «присвоим логическим переменным эти выска-
зывания» говорят «обозначим высказывания следующим образом». В
дальнейшем мы тоже будем использовать этот речевой оборот.
§3. Законы алгебры логики
Итак, мы познакомились с понятием логического выражения и уви-
дели, каким образом его строить по высказыванию на русском языке.
Следующий шаг – изучение преобразований логических выражений.
Определение 5. Логические выражения, зависящие от одних и тех
же логических переменных, называются равносильными, если на лю-
бом наборе значений переменных они принимают одинаковое значение
(0 или 1). В дальнейшем для обозначения равносильности логических
выражений мы будем использовать знак равенства.
Законы алгебры логики – это некоторые стандартные преобразова-
ния логических выражений, при которых сохраняется равносильность.
Начнём с самых простых законов:

1) Законы поглощения констант


x0 = x, x&1 = x;
2) Законы поглощения переменных
x1 = 1, x&0 = 0;
3) Законы идемпотентности
x&x = х,xx = х;
4) Закон двойного отрицания
x = x;
10
5) Закон противоречия
x&x = 0;
6) Закон исключённого третьего
xx = 1;
Приведённые законы ещё называют аксиомами алгебры логики. Ис-
тинность этих и всех последующих законов легко можно установить,
построив таблицу истинности для левого и правого логического выра-
жения.
Переходим к группе законов, которые практически аналогичны за-
конам алгебры чисел.
7) Законы коммутативности
x&y = y&x,
xy = yx;
Здесь стоит сделать замечание, что помимо конъюнкции и дизъюнк-
ции свойством коммутативности также обладают эквивалентность и
строгая дизъюнкция. Импликация – единственная из изучаемых опера-
ций, которая имеет два операнда и не обладает свойством коммутатив-
ности.
8) Законы ассоциативности
(x&y)&z = x&(y&z),
(xy)z = x(yz);
9) Законы дистрибутивности
x & (y  z) = (x & y)  (x & z),
x  (y  z) = (x  y)  (x  z);
Первый из законов дистрибутивности аналогичен закону дистрибу-
тивности в алгебре чисел, если конъюнкцию считать умножением, а
дизъюнкцию – сложением. Второй же закон дистрибутивности отлича-
ется от алгебры чисел, поэтому рекомендуется обратить на него особое
внимание и в дальнейшем использовать при решении задач на упроще-
ние выражений.
Кроме аксиом и алгебраических свойств операций ещё существуют
особые законы алгебры логики.
10) Законы де Моргана
x& y  x y,
x y  x& y;
11
11) Загоны поглощения (не путать с аксиомами поглощения пере-
менных нулём или единицей)
x (x&y) = x;
x& (xy) = x.
Рассмотрим пример доказательства первого закона де Моргана при
помощи построения таблицы истинности.

x Y x&y x& y x y x y
0 0 0 1 1 1 1
0 1 0 1 1 0 1
1 0 0 1 0 1 1
1 1 1 0 0 0 0
Так как результирующие столбцы совпали, то выражения, стоящие в
левой и правой частях закона, равносильны.
В алгебре при решении задач на упрощение выражений большой по-
пулярностью пользовалась операция вынесения общего множителя за
скобки. В алгебре логики эта операция также является легитимной, бла-
годаря законам дистрибутивности и закону поглощения константы 1.
Продемонстрируем этот приём на простом примере: докажем первый
закон поглощения, не используя таблицу истинности.
Наше начальное выражение: x (x&y). Выносим x за скобки и
получаем следующее выражение:
x&(1 y).Используем закон поглощения переменной константой 1 и
получаем следующее выражение: x& 1. И теперь используем закон
поглощения константы и получаем просто x.
В заключение, следует сказать несколько слов об операции импли-
кации. Как уже отмечалось выше, импликация не обладает свойством
коммутативности. Её операнды неравноправны, поэтому каждый из
них имеет уникальное название. Левый операнд импликации называет-
ся посылкой, а правый – следствием. Из таблицы истинности импли-
кации следует, что она истинна, когда истинно следствие, либо ложна
посылка. Единственный случай, когда импликация ложна – это случай
истинной посылки и ложного следствия. Таким образом, мы подошли к
последнему закону алгебры логики, который бывает полезен при
упрощении выражений.
12) Закон преобразования импликации
xy= xy
12
Необходимо ещё отметить, что в сложных логических выражениях у
операций есть порядок приоритетов.
1) Отрицание
2) Конъюнкция
3) Дизъюнкция, строгая дизъюнкция, эквивалентность
4) Импликация
§4. Примеры задач на использование законов
алгебры логики и формализацию высказываний
Задача 1. С помощью тождественных преобразований максималь-
но упростить следующее логическое выражение:
C  (A& С)  ( A  C  B )
Решение. Максимально упростить, это значит довести выражение
до такого вида, когда невозможно применить ни один из законов алгеб-
ры логики, которые сокращают длину выражения.
Для того, чтобы не запутаться, можно использовать общую страте-
гию упрощения логических выражений.
1) Избавиться от операций импликации.
2) Продвинуть отрицание вглубь выражения. То есть применять за-
коны де Моргана, и закон двойного отрицания пока знак отрицания не
будет стоять только над переменными (но не над операциями).
После пункта 2 наступает относительная свобода действий. Можно
использовать тождества поглощения или раскрывать скобки.
В нашей задаче операция импликации отсутствует, поэтому первый
пункт мы пропускаем. Переходим к пункту 2. Применяем два раза вто-
рой закон де Моргана (для дизъюнкции) и закон двойного отрицания к
правой скобке и получаем следующее логическое выражение:
C  (A& С)  (A&C&B)
Если теперь внимательно посмотреть на выражение, то очевидно,
что к первому и третьему слагаемому можно применить первый закон
поглощения, так как отрицание переменной C является первым слагае-
мым и входит в третье в качестве множителя.
Поскольку дизъюнкцию ещё называют логическим сложением,
её операнды называют слагаемыми, аналогично конъюнкция – это
логическое умножение, и её операнды называют множителями.
После применения первого закона поглощения получается следую-
щее логическое выражение:С  (A& С)
Применим второй (нестандартный для алгебры) закон дистрибутив-
ности. Получаем: (С  A)&(С  С)
13
Ко второй скобке применяем закон исключённого третьего, превра-
щаем её в единицу, а затем применяем закон поглощения константы 1 и
в итоге получаем выражение: С  A, которое упростить уже нельзя.
Для лучшего понимания, рекомендуется выписать исходное логиче-
ское выражение, последовательно применить к нему все описанные
действия и сравнить свой результат с приведённым в конце решения
задачи.
Обратите внимание, что исходное логическое выражение зависело
от трёх переменных (A, B, C), в то время как упрощённое в итоге зави-
сит от двух логических переменных (A и C). При этом выражения всё
равно остаются равносильными! Это происходит потому, что в процес-
се упрощения применялись законы поглощения. Аналогичный резуль-
тат мог бы получиться, если в процессе упрощения выражения исполь-
зуются законы поглощения переменных константами. Исчезновение
переменной при упрощении означает, что в исходном выражении она
является несущественной.
Задача 2. Укажите значения переменных K, L, M, N, при которых
логическое выражение(LM)  (¬ KM)  ¬ N¬M истинно.
Решение. Будем следовать стратегии, описанной в предыдущем
примере. Первым делом избавляемся от операции импликации. Полу-
чаем следующее выражение:
(LM)  ( KM)  ¬ N¬M
Отрицание вглубь продвигать не надо. Теперь раскроем скобки. Для
упрощения условимся операцию конъюнкции никак не обозначать (по
аналогии с алгеброй чисел).
(LKLMMKM) ( ¬ N) ( ¬M)
В первой скобке можно применить тождество поглощения, и
«съесть» второе и третье слагаемое, которые содержат M в качестве
множителя. Получается такое выражение:
(LKM) ( ¬ N) ( ¬M)
Выполнив оставшиеся операции умножения, получим следующий
результат:
LK¬ N¬M
Получили одну конъюнкцию. Следовательно, существует всего один
набор значений переменных, при котором получится значение «1»:
L=1, K=1, N=0, M=0.
Задача 3. Сколько решений имеет уравнение:
((X /\ ¬Y) → ¬(K /\ L /\ Z)) /\ ((X → Y) → (K/\ L /\ Z)) /\ (K → X) = 1
Решите задачу, не используя таблицы истинности.
Решение. Исходное выражение преобразуем в следующее:
14
(¬ (X & ¬Y) + ¬(K /\ L /\ Z)) & ((X & ¬Y) + (K /\ L /\ Z)) & (K → X) = 1
Последнее выражение можно представить в виде: (¬ A + ¬B) & (A+B)
& C = 1 или ¬ (AB) & (A+B) & C = 1, где A= (X & ¬Y), B=(K & L & Z),
C = (K →X)
Таким образом получаем:
AB=0
A+B = 1
C=1
Получаем совокупность двух решений:1) A=0, B =1, C=1 и 2) A=1,
B=0, C=1.
Определим, сколько решений имеется в каждом из этих двух случаев.
1) В первом случае:
(X & ¬Y) = 0
(K & L & Z) = 1
(K → X) = 1
Так получено первое решение: K = 1, L = 1, Z=1, X =1, Y = 1
2) Во втором случае:
(X & ¬Y) = 1
(K & L & Z) = 0
(K → X)=1
Что дает следующее решение: X = 1, Y = 0, K = 0 или 1
Если K = 0, то (0&L&Z) = 0 имеет 3 решения.
Если K = 1, то (1&L&Z) = 0 имеет 2 решения.
Таким образом, для второго случая имеем 5 решений.
Ответ. Общее количество решений: 6.
Задача 4. В нарушении правил обмена валюты подозреваются че-
тыре работника банка — Антипов (А), Борисов (В), Цветков (С) и
Дмитриев (D). Известно, что:
1) Если А нарушил, то и В нарушил правила обмена валюты.
2) Если В нарушил, то и С нарушил или А не нарушал.
3) Если D не нарушил, то А нарушил, а С не нарушал.
4) Если D нарушил, то и А нарушил.
Кто из подозреваемых нарушил правила обмена валюты?
Решение. Чтобы решить эту задачу, необходимо провести процесс
формализации условия, сформировать единое логическое выражение и
провести его упрощение. Выделим из условия четыре простых выска-
зывания: «A нарушил правила», «B нарушил правила», «C нарушил
15
правила», и «D нарушил правила». Обозначим их соответственно бук-
вами A, B, C, D. Тогда высказывания из условия формализуются сле-
дующим образом (конъюнкция не обозначается никак):
1) A→ B;
2) B→ C\/ ¬A;
3) ¬D→A¬C;
4) D→ A.
Нам известно, что выполняются все 4 высказывания, следовательно,
нужно объединить их знаками конъюнкции и найти наборы, при кото-
рых получившееся общее высказывание будет истинным. Эти наборы и
покажут нам, какие возможны ситуации (правила обмена нарушил тот,
у кого переменная в итоговом наборе имеет значение «1»).
Итак, строим логическое выражение:
(A→ B)(B→ C\/ ¬A)( ¬D→A¬C)(D→ A).
Теперь будем его упрощать. По алгоритму первым делом избавля-
емся от операции импликации. Получаем следующее выражение:
(¬A\/ B)(¬B\/ C\/ ¬A)(D\/ A¬C)( ¬D\/ A).
Раскрываем скобки. Первую перемножаем со второй, а третью с
четвёртой.
(¬A¬B \/ ¬AC \/ ¬A\/ BC \/ B¬A) ( DA \/ A¬C¬D \/ A¬C).
Напомним, что слагаемые, равные нулю по причине того, что в них
входит сразу и переменная и её отрицание, мы не записываем. В первой
скобке теперь можно применить тождество поглощения, и «съесть» все
слагаемые, имеющие в своём составе A с отрицанием. Во второй скоб-
ке можно также применить тождество поглощения, и «съесть» второе
слагаемое. В итоге получаем:
(¬A\/ BC ) (DA\/A¬C).
При раскрытии оставшихся скобок три из четырёх слагаемых ока-
жутся равными нулю, а последнее будет выглядеть следующим обра-
зом: ABCD. Из этого следует, что все четверо работников банка нару-
шили правило обмена валюты. (Только в этой ситуации предположения
из условия задачи одновременно выполняются)
Ответ. Правила обмена валюты нарушили все.
Задача 5. Известно, что обе надписи на дверях либо истинны, либо
ложны одновременно. Надпись на первой двери – "Клад за другой две-
рью", на второй двери – "Клада за этой дверью нет, а за другой –
есть". Где находится клад?
16
Решение. По сути нас интересуют два простых высказывания:
«Клад есть за первой дверью» и «Клад есть за второй дверью». Обозна-
чим первое из них буквой A, а второе буквой B. Тогда изначальные
предположения формализуются следующим образом:
1) B;
2) ¬BA.
В этой задаче в отличие от предыдущей у нас две возможные ситуа-
ции относительно комбинирования начальных предположений – они
либо оба истинны, либо оба ложны. Предположим, что они оба истин-
ны, тогда при их перемножении получится тождественный ноль, что
означает невозможность данной ситуации.
Предположим, что оба высказывания ложны, тогда необходимо пе-
ред перемножением на каждое из них «навесить» отрицание (рассмат-
ривать истинность противоположных высказываний) В итоге получит-
ся следующее логическое выражение:
¬B ¬(¬BA).
Упрощаем его по алгоритму: отрицание продвигаем вглубь, приме-
няя тождество Де Моргана. Получаем:
¬B (B\/ ¬A).
Раскроем скобки. Первое слагаемое сокращается, а второе выглядит
следующим образом: ¬B¬A.
Полученный результат означает, что условия задачи выполняются,
только в случае, когда оба высказывания ложны, а это означает, что
клада нет ни за одной дверью. Не повезло нам 
Ответ. Клада нет ни за одной дверью.
В заключение приведём общую схему решения текстовых логиче-
ских задач, которую мы уже применяли на практике при разборе при-
меров.
1) Выделить из условия задачи элементарные (простые) высказыва-
ния и обозначить их буквами.
2) Записать условие задачи на языке алгебры логики, соединив про-
стые высказывания в сложные с помощью логических операций.
3) Составить единое логическое выражение для всех требований за-
дачи (возможно не одно).
4) Используя законы алгебры логики попытаться упростить полу-
ченное выражение и вычислить все его значения либо построить таб-
лицу истинности для рассматриваемого выражения (Таблицу можно
строить, если в выражении не более трёх логических переменных).
17
5) Выбрать решение — набор значений простых высказываний, при
котором построенное логическое выражение является истинным;
6) Проверить, удовлетворяет ли полученное решение условию зада-
чи.
Среди задач алгебры логики часто встречаются задачи на определе-
ние количества решений систем логических уравнений. Рассмотрим
примеры некоторых их них.
Задача 6. Сколько существует различных наборов значений логиче-
ских переменных x1, x2, x3, x4, x5, x6, y1, y2, y3, y4, y5, y6, которые
удовлетворяют всем перечисленным ниже условиям?
(x1 ∨ y1) ≡ (¬x2 ∧ ¬y2)
(x2 ∨ y2) ≡ (¬x3 ∧ ¬y3)
...
(x5 ∨ y5) ≡ (¬x6 ∧ ¬y6)
Приведите полное решение задачи с пояснениями.
Решение: Исходную систему можно представить в виде:
A1=¬A2
A2=¬A3
A3=¬A4
A4=¬A5
A5=¬A6
Если A1=0, то A2=1, A3=0, A4=1, A5=0, A6 = 1
Если A1=1, то A2=0, A3=1, A4=0, A5=1, A6 = 0
Заметим, что для A1 = 0 существует 3 решения, А1 = 1 – одно решение.
Получаем, что для первого и второго случаев существует по 27 реше-
ний, значит общее количество решений равно 54.
Ответ: Общее количество решений равно 54.
Заметим, что перед решением больших систем логических уравне-
ний часто сначала удобно упростить исходную систему с помощью за-
конов алгебры логики, а также воспользоваться заменой переменных,
как это было продемонстрировано в решении задачи выше.
§5. Логический тип данных
в языке программирования Паскаль
18
Подобно предыдущему заданию, теперь мы вновь перейдём к изу-
чению программирования и применим полученные знания по алгебре
логики на практике.
В прошлом задании мы работали с числовыми типами переменных и
учили арифметику, теперь познакомимся с логическим типом перемен-
ных, который называется Boolean. Переменные этого типа имеют всего
два значения – true и false (соответственно, «истина» и «ложь»). По-
добно числовым переменным им можно присваивать значения при по-
мощи оператора присваивания. При этом необходимо строго соблюдать
правило совместимости типов. То есть логическим переменным нель-
зя присваивать числовые значения, а числовым – логические.
В языке Паскаль помимо арифметических операций ещё существует
6 операций сравнения: больше» (>), «больше или равно» (>=),
«меньше» (<), «меньше или равно» (<=), «равно» (=), и «не равно» (<>).
Операция «не равно» записывается, как последовательность знаков
«меньше» и «больше». Результатом каждой из этих операций является
логическое значение true или false. Например, операция 5 > 2 выдаст
значение true, а операция x<>3 выдаст значение true, если переменная X
имеет любое значение, кроме 3. Сравнивать можно не только числа
(причём как целые, так и вещественные), но и логические значения.
При этом считается, что значение true больше, чем значение false. При
сравнении обязательно соблюдать правило совместимости типов, то
есть можно сравнивать числа между собой (причём в отличие от
оператора присваивания, здесь никаких ограничений нет). Можно
сравнивать между собой логические значения. Но нельзя сравнивать
логическое значение с числом любого типа.
Помимо операций сравнения, в паскале существуют четыре
логические операции, абсолютно аналогичные операциям алгебры
логики.
1) Операция AND (в алгебре логики – «конъюнкция»)
2) Операция OR (в алгебре логики – «дизъюнкция»)
3) Операция XOR (в алгебре логики – «строгая дизъюнкция»)
4) Операция NOT (в алгебре логики – «отрицание»)
Все операнды этих операций должны быть логического типа, а
никак не числового. Причём, операции AND, OR и XOR имеют по 2
операнда, а операция NOT – один операнд, который записывается
справа от названия операции (аналогично обозначению операции NOT
при помощи ¬ в алгебре логики)
19
Теперь у нас есть достаточно много операций и нужно расставить их
по приоритету выполнения. В Паскале есть четыре приоритета опера-
ций:
1) Операция not;
2) Операции группы умножения: *, /, div, mod, and;
3) Операции группы сложения: +, – , or, xor;
4) Операции группы сравнения: >, <, <=, >=, =, <>.
Операции одного приоритета выполняются слева направо. Операции
в круглых скобках имеют более высокий приоритет, чем вне скобок.
Теперь рассмотрим несколько примеров задач на использование ло-
гического типа.
Общая Задача. Записать на Паскале логическое выражение истин-
ное при выполнении указанного условия и ложное в противном случае.
Результат вычисления данного выражения присвоить переменной F.
Условие1: Числовая переменная X имеет значение на отрезке
[–1,1].
Решение: F:=abs(X)<=1;
Условие2: Числовая переменная X имеет значение на отрезке [2,7].
Решение: F:=(X>=2)and(X<=7).
Обратите внимание на скобки. Они обязательны, поскольку опера-
ции сравнения имеют более низкий приоритет, чем операция and.
Условие3: Числовая переменная X имеет значение на одном из 2 от-
резков: [–10, 3] или [10, 20].
Решение: F:=(X>=-10)and(X<=3)or(X>=10)and(X<=20).
Условие4: Логические переменные A и B имеют различные значе-
ния.
Решение: F:=A<>B.
Условие5: По крайней мере 2 из логических переменных A, B и C
имеют значение true.
Решение: F:=A and B or A and C or B and C.

Вам также может понравиться