Умение строить таблицы истинности и логические схемы · 48 заданий
- Задание №2№2
Миша заполнял таблицу истинности логической функции F (x → z) (y ≡ w) y, но успел заполнить лишь фрагмент из трёх различных её строк, даже не указав,…
Алгебра логики
- Задание №2№2
Миша заполнял таблицу истинности логической функции F (y → x) \/ (z → w) \/ z, но успел заполнить лишь фрагмент из трёх различных её строк, даже не ук…
Алгебра логики
- Задание №2№2
Миша заполнял таблицу истинности функции (x y) (x ≡ z) w, но успел заполнить лишь фрагмент из трёх различных её строк, даже не указав, какому столбцу…
Алгебра логики
- Задание №2№2
Миша заполнял таблицу истинности логической функции F (y → (x ≡ w)) (z → x), но успел заполнить лишь фрагмент из трёх различных её строк, даже не указ…
Алгебра логики
- Задание №2№2
Миша заполнял таблицу истинности функции (x y) (y ≡ z) w, но успел заполнить лишь фрагмент из трёх различных её строк, даже не указав, какому столбцу…
Алгебра логики
- Задание №2№2
Миша заполнял таблицу истинности логической функции F ((y ≡ w) z) (w x), но успел заполнить лишь фрагмент из трёх различных её строк, даже не указав,…
Алгебра логики
- Задание №2№2
Миша заполнял таблицу истинности логической функции F (y → (w ≡ z)) (w → x), но успел заполнить лишь фрагмент из трёх различных её строк, даже не указ…
Алгебра логики
- Задание №2№2
Миша заполнял таблицу истинности логической функции F (x → y) z w, но успел заполнить лишь фрагмент из трёх различных её строк, даже не указав, какому…
Алгебра логики
- Задание №2№2
Миша заполнял таблицу истинности логической функции F (x → w) (y → (z ≡ w)), но успел заполнить лишь фрагмент из трёх различных её строк, даже не указ…
Алгебра логики
- Задание №2№2
Миша заполнял таблицу истинности логической функции F (x ≡ w) (z w) y, но успел заполнить лишь фрагмент из трёх различных её строк, даже не указав, ка…
Алгебра логики
- Задание №2№2
Миша заполнял таблицу истинности логической функции F (x y) (y ≡ z) w, но успел заполнить лишь фрагмент из трёх различных её строк, даже не указав, ка…
Алгебра логики
- Задание №2№2
Миша заполнял таблицу истинности логической функции F (x → (y ≡ z)) (w → y), но успел заполнить лишь фрагмент из трёх различных её строк, даже не указ…
Алгебра логики
Миша заполнял таблицу истинности функции F
((w≡¬y)∨(w≡¬z))∧x∧(y→z),
но успел заполнить лишь фрагмент из трёх различных её строк, даже не указав, какому столбцу таблицы соответствует каждая из переменных w, x, y, z:
| F | ||||
| 1 | 0 | 1 | 1 | |
| 1 | 0 | 1 | ||
| 0 | 1 | 1 | ||
| 1 | 1 | 1 |
Определите, какому столбцу таблицы соответствует каждая из переменных w, х, у, z. В ответе напишите буквы w, х, у, z в том порядке, в котором идут соответствующие им столбцы (сначала буква, соответствующая первому столбцу; затем буква, соответствующая второму столбцу, и т. д.). Буквы в ответе пишите подряд, никаких разделителей между буквами ставить не нужно.
Пример. Функция F задана выражением ¬x∨y, зависящим от двух переменных, а фрагмент таблицы имеет следующий вид.
| F | ||
| 0 | 1 | 0 |
В этом случае первому столбцу соответствует переменная у, а второму столбцу переменная х. В ответе следует написать ух.
Правильный ответ
xwyz
Пояснение
Решение:
Функция F=((w≡¬y)∨(w≡¬z))∧x∧(y→z) зависит от четырёх переменных, поэтому её полная таблица истинности содержит 24=16 строк, а расставить переменные w, x, y, z по четырём столбцам можно 4!=24 способами.
Найдём все наборы, на которых F=1. Таких наборов всего четыре (значения записаны в «алфавитном» порядке w, x, y, z):
| w | x | y | z | F |
|---|---|---|---|---|
| 0 | 1 | 0 | 1 | 1 |
| 0 | 1 | 1 | 1 | 1 |
| 1 | 1 | 0 | 0 | 1 |
| 1 | 1 | 0 | 1 | 1 |
Значит, каждая строка фрагмента — это одна из этих четырёх строк, только с переставленными столбцами. Но в каком порядке идут сами строки фрагмента, неизвестно, поэтому соответствие «столбец → переменная» надёжнее всего установить перебором всех 24 расстановок.
Отдельно обратим внимание на условие: строки фрагмента различны. Поэтому проверка расстановки такая: для каждой строки фрагмента находим все её дополнения, дающие нужное значение F, и убеждаемся, что из этих дополнений можно выбрать попарно различные строки.
Всё это удобно поручить программе. В Python импликация a→b — это a <= b, а эквиваленция a≡b — это a == b.
from itertools import product, permutations
def F(w, x, y, z):
return int((((w == (not y)) or (w == (not z))) and x) and (y <= z))
# фрагмент таблицы: '.' — незаполненная клетка, второе число — значение F
frag = [('.101', 1),
('.1.0', 1),
('.0.1', 1),
('..11', 1)]
def fits(mask, vals):
return all(m == '.' or int(m) == v for m, v in zip(mask, vals))
for p in permutations('wxyz'):
# для каждой строки фрагмента — все её допустимые дополнения
variants = []
for mask, f in frag:
variants.append([vals for vals in product((0, 1), repeat=4)
if fits(mask, vals) and F(**dict(zip(p, vals))) == f])
# строки фрагмента должны быть попарно различны
for lines in product(*variants):
if len(set(lines)) == len(lines):
print(''.join(p))
break
Программа печатает единственную расстановку — xwyz.
Проверим её вручную. Столбцы идут в порядке x, w, y, z; восстановим пустые клетки (восстановленные значения выделены курсивом):
| x | w | y | z | F |
|---|---|---|---|---|
| 1 | 1 | 0 | 1 | 1 |
| 1 | 1 | 0 | 0 | 1 |
| 1 | 0 | 0 | 1 | 1 |
| 1 | 0 | 1 | 1 | 1 |
Все строки различны, известные клетки совпадают с фрагментом, и функция на них принимает требуемые значения — расстановка найдена верно.
Ответ: xwyz