Умение строить таблицы истинности и логические схемы · 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≡w)∧(z∨¬w)∧y,
но успел заполнить лишь фрагмент из трёх различных её строк, даже не указав, какому столбцу таблицы соответствует каждая из переменных w, x, y, z.
| F | ||||
| 0 | 1 | 0 | 1 | |
| 1 | 0 | 1 | 1 | |
| 1 | 0 | 1 |
Определите, какому столбцу таблицы соответствует каждая из переменных w, x, y, z.
Правильный ответ
zywx
Пояснение
Решение:
Конъюнкция равна единице, только если истинны все множители: y=1; из ¬(x≡w) следует x=w; а z∨¬w означает, что при w=1 обязательно z=1.
Таких наборов ровно три: (w,x,y,z) равно (0,1,1,0), (0,1,1,1) или (1,0,1,1).
Во всех строках y=1, поэтому в столбце y не может быть нулей. Нули есть в первом, третьем и четвёртом столбцах, значит y — второй столбец.
Столбцы w и x всюду различаются, а в первой строке первый и третий столбцы оба равны 0 — такой парой они быть не могут. Значит один из столбцов w, x — обязательно четвёртый, а переменной z достаётся первый или третий столбец.
В первой строке и первый, и третий столбцы равны 0. Один из них — это z, значит в этой строке z=0, и первая строка — набор (0,1,1,0), где w=0, x=1. Второй из этих двух нулей может быть только переменной w (ведь x=1), поэтому x — четвёртый столбец, а w и z занимают первый и третий.
Если бы w стоял в первом столбце, а z — в третьем, то вторая строка (третий столбец даёт z=0, четвёртый даёт x=1, откуда w=0) снова оказалась бы набором (0,1,1,0) и совпала с первой. Значит первый столбец — z, а третий — w; строки фрагмента это (0,1,1,0), (0,1,1,1) и (1,0,1,1).
Тот же результат даёт перебор всех 24 расстановок переменных по столбцам:
from itertools import permutations, product
def F(w, x, y, z):
return (x != w) and (z or not w) and y
rows = [t for t in product([0, 1], repeat=4) if F(*t)] # наборы (w, x, y, z) с F = 1
frag = [[0, 1, 0, None],
[None, 1, 0, 1],
[1, None, None, 0]]
for cols in permutations('wxyz'): # cols[i] — переменная в i-м столбце
for order in permutations(rows, 3): # какой набор какой строке фрагмента
val = [dict(zip('wxyz', t)) for t in order]
if all(frag[r][i] is None or frag[r][i] == val[r][cols[i]]
for r in range(3) for i in range(4)):
print(''.join(cols))
break
Ответ: zywx