Статья Автор: Деникина Н.В., Деникин А.В.

Таблицы истинности — Итоговый разбор: вручную и с Python

Большую формулу разбираем по частям

Теперь вместе встретятся ИЛИ, отрицание, импликация и эквивалентность. Сначала решим задачу вручную. Затем построим таблицу на Python без заранее заданного ответа и получим соответствие ещё раз.


Сложная формула: решение без перестановок

F = ((x ≡ ¬y) → ¬(w → x)) ∨ ¬z

№?столбец 1?столбец 2?столбец 3?столбец 4F
У1—0100
У20——00
У3—11—0

Пустая клетка — неизвестное значение, не ноль. Полные строки различны. С подключённым компонентом здесь работает одна изменяющаяся таблица; без скрипта доступны все шаги ниже.

Все шаги в текстовом виде — для повторения или без скрипта
1. Из формулы получаем три ограничения

F = 0: ¬z = 0 и большая импликация равна 0. Поэтому z = 1, x ≡ ¬y = 1 и ¬(w → x) = 0. Итак, z = 1, x ≠ y, w → x = 1.

Известно: z = 1; x ≠ y; w → x = 1

№?столбец 1?столбец 2?столбец 3?столбец 4F
У1—0100
У20——00
У3—11—0
2. Постоянная единица исключает нули

z = 1 во всех строках. В столбцах 1, 2 и 4 есть известные нули.

Известно: z = 1; x ≠ y; w → x = 1

Действие: Какой столбец может быть z?

Вывод: z — третий столбец. Его пропуски можно заполнить единицами.

№?столбец 1?столбец 2zстолбец 3?столбец 4F
У1—0100
У20—100
У3—11—0
3. Два равных значения запрещают пару

x и y различны в каждой строке. Поэтому два одинаковых значения в одной строке сразу исключают пару столбцов. Не нужно расставлять все буквы.

Известно: z = 1; x ≠ y; w → x = 1

Действие: Какая пара остаётся для двух противоположных переменных?

Вывод: Остаётся пара 1–2. Для w — четвёртый столбец. Какая из букв x, y первая, пока не решаем.

№?столбец 1?столбец 2zстолбец 3wстолбец 4F
У1—0100
У20—100
У3—11—0
4. Значения можно найти раньше названий

Мы ещё не решили, где x, а где y. Но знаем, что столбцы 1 и 2 противоположны. Поэтому напротив 0 дописываем 1, а напротив 1 — 0.

Известно: z = 1; x ≠ y; w → x = 1

Действие: В первой строке второй столбец равен 0. Что обязано стоять в первом?

Вывод: Ставим 1. По тому же правилу достраиваем пару в остальных строках.

№?столбец 1?столбец 2zстолбец 3wстолбец 4F
У110100
У201100
У3011—0
5. Почти одинаковые строки дают недостающий бит

У2 и У3 уже совпадают в первых трёх столбцах. Чтобы строки были различными, их четвёртые значения должны отличаться.

Известно: z = 1; x ≠ y; w → x = 1; Строки различны

Действие: Какое значение вынуждено в последнем пропуске?

Вывод: Ставим 1. Это следствие различности строк, а не выбор одной из расстановок.

№?столбец 1?столбец 2zстолбец 3wстолбец 4F
У110100
У201100
У301110
6. Новая единица определяет направление пары

В строке У3 теперь известно w = 1. Вспомни, какое значение следствия требует истинная импликация w → x. В противоположной паре этой строки единица находится во втором столбце.

Известно: z = 1; x ≠ y; w → x = 1

Действие: Как подпишем второй столбец по этому выводу?

Вывод: Второй столбец — x. Первая из двух оставшихся букв занимает первый столбец.

№yстолбец 1xстолбец 2zстолбец 3wстолбец 4F
У110100
У201100
У301110
7. Проверяем ограничения, а не перебираем наборы

В каждой строке z = 1, x и y различаются, w → x = 1. Эти три условия дают исходное F = 0. Наборы различны. Ответ найден без проверки перестановок букв.

Известно: z = 1; x ≠ y; w → x = 1

№yстолбец 1xстолбец 2zстолбец 3wстолбец 4F
У110100
У201100
У301110

Ответ: yxzw.


Для новой формулы известно: H = ((p ≡ q) → r) ∨ ¬s, H = 0 и p = 0. Запиши значения q, r, s подряд в этом порядке.


Программный путь. Переводим формулу, а не найденный ответ

Начинаем с той же исходной формулы, не подставляя подписи столбцов из ручного разбора. Чтобы не потерять скобки и отрицания, дадим частям короткие имена:

ЧастьСмыслPython
ax ≡ ¬yx == (not y)
bw → x(not w) or x
c¬(w → x)not b
f(a → c) ∨ ¬z((not a) or c) or (not z)

a, b, c — вспомогательные значения, а не дополнительные столбцы из условия. Печатать будем x, y, z, w и F. Условие отбора теперь f == 0.



Сложный вывод: противоположные столбцы и единственное отличие

F = ((x ≡ ¬y) → ¬(w → x)) ∨ ¬z

№?столбец 1?столбец 2?столбец 3?столбец 4F
У1—0100
У20——00
У3—11—0

Пустая клетка — неизвестное значение, не ноль. Полные строки различны. С подключённым компонентом здесь работает одна изменяющаяся таблица; без скрипта доступны все шаги ниже.

Все шаги в текстовом виде — для повторения или без скрипта

Вывод программы, с которым сравниваем условие:

x y z w F
0 1 1 0 0
1 0 1 0 0
1 0 1 1 0
1. Сначала читаем три особенности вывода

Python напечатал все строки с F = 0. Справа z всегда равно 1, x и y противоположны, а при w = 1 значение x тоже равно 1. Эти признаки используем вместо перебора расстановок.

Известно: z = 1; x ≠ y; w → x = 1

№?столбец 1?столбец 2?столбец 3?столбец 4F
У1—0100
У20——00
У3—11—0
2. Постоянная единица исключает нули

z = 1 во всех строках. В столбцах 1, 2 и 4 есть известные нули.

Известно: z = 1; x ≠ y; w → x = 1

Действие: Какой столбец может быть z?

Вывод: z — третий столбец. Его пропуски можно заполнить единицами.

№?столбец 1?столбец 2zстолбец 3?столбец 4F
У1—0100
У20—100
У3—11—0
3. Два равных значения запрещают пару

x и y различны в каждой строке. Поэтому два одинаковых значения в одной строке сразу исключают пару столбцов. Не нужно расставлять все буквы.

Известно: z = 1; x ≠ y; w → x = 1

Действие: Какая пара остаётся для двух противоположных переменных?

Вывод: Остаётся пара 1–2. Для w — четвёртый столбец. Какая из букв x, y первая, пока не решаем.

№?столбец 1?столбец 2zстолбец 3wстолбец 4F
У1—0100
У20—100
У3—11—0
4. Значения можно найти раньше названий

Мы ещё не решили, где x, а где y. Но знаем, что столбцы 1 и 2 противоположны. Поэтому напротив 0 дописываем 1, а напротив 1 — 0.

Известно: z = 1; x ≠ y; w → x = 1

Действие: В первой строке второй столбец равен 0. Что обязано стоять в первом?

Вывод: Ставим 1. По тому же правилу достраиваем пару в остальных строках.

№?столбец 1?столбец 2zстолбец 3wстолбец 4F
У110100
У201100
У3011—0
5. Почти одинаковые строки дают недостающий бит

У2 и У3 уже совпадают в первых трёх столбцах. Чтобы строки были различными, их четвёртые значения должны отличаться.

Известно: z = 1; x ≠ y; w → x = 1; Строки различны

Действие: Какое значение вынуждено в последнем пропуске?

Вывод: Ставим 1. Это следствие различности строк, а не выбор одной из расстановок.

№?столбец 1?столбец 2zстолбец 3wстолбец 4F
У110100
У201100
У301110
6. Новая единица определяет направление пары

В строке У3 теперь известно w = 1. Вспомни, какое значение следствия требует истинная импликация w → x. В противоположной паре этой строки единица находится во втором столбце.

Известно: z = 1; x ≠ y; w → x = 1

Действие: Как подпишем второй столбец по этому выводу?

Вывод: Второй столбец — x. Первая из двух оставшихся букв занимает первый столбец.

№yстолбец 1xстолбец 2zстолбец 3wстолбец 4F
У110100
У201100
У301110
7. Проверяем ограничения, а не перебираем наборы

Восстановленные строки удовлетворяют z = 1, x ≠ y, w → x = 1. Значит, в исходной формуле большая импликация равна 0 и ¬z = 0: F = 0. Строки различны. Подписи найдены по свойствам таблицы, а не проверкой двух полных расстановок.

Известно: z = 1; x ≠ y; w → x = 1

№yстолбец 1xстолбец 2zстолбец 3wстолбец 4F
У110100
У201100
У301110

Соответствие: У1 → П1, У2 → П2, У3 → П3.

Ответ: yxzw.


В новой проверке трём строкам условия подходят такие номера строк вывода: первой — 2 или 4, второй — 4, третьей — 1 или 2. Нужно выбрать разные номера. Запиши номера для первой, второй и третьей строк подряд, без разделителей.


Другой вывод программы имеет заголовок x y z w F. Как в порядке столбцов w z x y записать набор x = 0, y = 1, z = 0, w = 1? Запиши только четыре значения переменных.


Главный приём сложного примера

Значения в противоположных столбцах можно восстановить раньше их названий. Это позволяет увидеть две почти одинаковые строки, вывести недостающий бит и по импликации назначить оставшиеся буквы. Полные расстановки пробовать не потребовалось.

Загрузка...
Чтобы оставить комментарий, необходимо авторизоваться
💬
Пока нет комментариев. Будьте первым!
Печать