Умение строить таблицы истинности и логические схемы · 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
¬(x→y)∨(x≡z)∨w,
но успел заполнить лишь фрагмент из трёх различных её строк, даже не указав, какому столбцу таблицы соответствует каждая из переменных w, х, у, z.
| F | ||||
| 1 | 0 | 1 | 0 | |
| 1 | 1 | 0 | ||
| 1 | 0 |
Определите, какому столбцу таблицы соответствует каждая из переменных w, х, у, z. В ответе напишите буквы w, x, y, z в том порядке, в котором идут соответствующие им столбцы (сначала буква, соответствующая первому столбцу; затем буква, соответствующая второму столбцу, и т. д.). Буквы в ответе пишите подряд, разделителей между буквами ставить не нужно.
Пример. Функция F задана выражением ¬x∨y, зависящим от двух переменных, а фрагмент таблицы имеет следующий вид.
| ¬x∨y | ||
| 0 | 1 | 0 |
В этом случае первому столбцу соответствует переменная y, а второму столбцу — переменная х. В ответе следует написать: ух.
Правильный ответ
xwzy
Пояснение
Решение:
Функция F=¬(x→y)∨(x≡z)∨w зависит от четырёх переменных, поэтому её полная таблица истинности содержит 24=16 строк, а расставить переменные w, x, y, z по четырём столбцам можно 4!=24 способами.
Найдём все наборы, на которых F=0. Таких наборов всего три (значения записаны в «алфавитном» порядке w, x, y, z):
| w | x | y | z | F |
|---|---|---|---|---|
| 0 | 0 | 0 | 1 | 0 |
| 0 | 0 | 1 | 1 | 0 |
| 0 | 1 | 1 | 0 | 0 |
Значит, каждая строка фрагмента — это одна из этих трёх строк, только с переставленными столбцами. Но в каком порядке идут сами строки фрагмента, неизвестно, поэтому соответствие «столбец → переменная» надёжнее всего установить перебором всех 24 расстановок.
Отдельно обратим внимание на условие: строки фрагмента различны. Это не украшение: если его не учитывать, подходящих расстановок получается 2. Поэтому проверка расстановки такая: для каждой строки фрагмента находим все её дополнения, дающие нужное значение F, и убеждаемся, что из этих дополнений можно выбрать попарно различные строки.
Всё это удобно поручить программе. В Python импликация a→b — это a <= b, а эквиваленция a≡b — это a == b.
from itertools import product, permutations
def F(w, x, y, z):
return int(((not (x <= y)) or (x == z)) or w)
# фрагмент таблицы: '.' — незаполненная клетка, второе число — значение F
frag = [('10.1', 0),
('..11', 0),
('..1.', 0)]
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
Программа печатает единственную расстановку — xwzy.
Проверим её вручную. Столбцы идут в порядке x, w, z, y; восстановим пустые клетки (восстановленные значения выделены курсивом):
| x | w | z | y | F |
|---|---|---|---|---|
| 1 | 0 | 0 | 1 | 0 |
| 0 | 0 | 1 | 1 | 0 |
| 0 | 0 | 1 | 0 | 0 |
Все строки различны, известные клетки совпадают с фрагментом, и функция на них принимает требуемые значения — расстановка найдена верно.
Ответ: xwzy