Логическая функция F задаётся выражением (x ∨ y) → (z ≡ x).
Дан частично заполненный фрагмент, содержащий неповторяющиеся строки таблицы истинности функции F.
Определите, какому столбцу таблицы истинности соответствует каждая из переменных x, y, z.
| Переменная 1 | Переменная 2 | Переменная 3 | Функция |
|---|---|---|---|
| ??? | ??? | ??? | F |
| 0 | 0 | 0 | |
| 0 | 0 |
В ответе напишите буквы x, y, z в том порядке, в котором идут соответствующие им столбцы (сначала — буква, соответствующая первому столбцу; затем — буква, соответствующая второму столбцу, и т. д.). Буквы в ответе пишите подряд, никаких разделителей между буквами ставить не нужно.
Пример. Пусть задано выражение x → y, зависящее от двух переменных x и y, и фрагмент таблицы истинности:
| Переменная 1 | Переменная 2 | Функция |
|---|---|---|
| ??? | ??? | F |
| 0 | 1 | 0 |
Тогда первому столбцу соответствует переменная y, а второму столбцу соответствует переменная x. В ответе нужно написать: yx.
Данная импликация принимает значение 0 тогда и только тогда, когда
Пусть x = 0, тогда y = z = 1. В первой строке нет двух единиц, значит, x = 1, и эта переменная находится в первом столбце. Тогда первая строка имеет вид 1 0 0.
Вторая строка должна отличаться от первой, поэтому она имеет вид 1 0 1. Рассмотрим два варианта:
| x | y | z |
| 1 | 0 | 0 |
| 1 | 0 | 1 |
| x | z | y |
| 1 | 0 | 0 |
| 1 | 0 | 1 |
Первый вариант не удовлетворяет системе (*), а второй — удовлетворяет.
Ответ: xzy.
Приведем другое решение.
Составим таблицу истинности для выражения (x ∨ y) → (z ≡ x) вручную или при помощи языка Python:
print("x y z")
for x in range(0, 2):
for y in range(0, 2):
for z in range(0, 2):
if not((x or y) <= (z == x)):
print(x, y, z)
Далее выпишем те наборы переменных, при которых данное выражение равно 0. В наборах переменные запишем в порядке х, y, z. Получим следующие наборы:
Получим следующие наборы:
(0, 1, 1)
(1, 0, 0),
(1, 1, 0).
Сопоставим эти наборы с приведенным в задании фрагментом таблицы истинности.
Первая строка таблицы может соответствовать только набору (1, 0, 0). Следовательно, первый столбец таблицы соответствует переменной x, и в первом столбце первой строки стоит 1.
Второй столбец таблицы может соответствовать только переменной z, поскольку переменная y принимает нулевое значение только в одном наборе. Тогда третий столбец соответствует переменной y.
Другая программа Артёма Гридина для построения таблицы истинности.
Составим таблицу истинности для выражения (x ∨ y) → (z ≡ x) вручную или при помощи языка Python:
import itertools
print('x y z')
for x, y, z in itertools.product((0, 1), repeat = 3):
if not((x or y) <= (z == x)):
print(x, y, z)

