Задание 2. Информатика. ЕГЭ. Шастин. 6.11.2024
- Просмотры: 248
- Изменено: 24 ноября 2024
(Д. Бахтиев) Святогор заполнял таблицу истинности логической функции $$ F = (x \equiv (y \to z \lor x)) \land w, $$ но успел заполнить лишь фрагмент из трёх различных её строк, не указав, какому столбцу таблицы соответствует каждая из переменных \(x\), \(y\), \(z\), \(w\).
? | ? | ? | ? | F |
---|---|---|---|---|
1 | 0 | 1 | 1 | |
0 | 0 | 1 | ||
1 | 0 | 1 |
Определите, какому столбцу таблицы соответствует каждая из переменных \(x\), \(y\), \(z\), \(w\).
В ответе напишите буквы \(x\), \(y\), \(z\), \(w\) в том порядке, в котором идут соответствующие им столбцы (сначала буква, соответствующая первому столбцу, затем буква, соответствующая второму столбцу, и т.д.). Буквы в ответе пишите подряд, никаких разделителей между буквами ставить не надо.
Решение:
Чтобы обеспечит истинность функции \(F\), переменная \(w\) должна быть равна \(1\) в каждой строке. Значит \(w\) — это третий столбец. Если \(x = 0\), то тогда выражение \(y \to z \lor 0\) должно быть ложным, т.е. \(y = 1, \, z = 0\). Тогда \(x\) не может быть вторым столбцом, так как если это так, то \(y\) — это первый столбец, а в четвёртый мы должны будем дописать нули (в нашем предположении это \(z\)). Но тогда первая и третья строчки совпадут. Значит, \(x\) — это первый столбец. Тогда \(y\) — это второй столбец. Дописываем туда \(1\). В случаях, когда \(x = 1\), переменная \(y=0\) и выражение \(0 \to z \lor 1\) будет истинно вне зависимости от значения \(z\).
Программное решение
Python
from itertools import product, permutations
def F(x, y, z, w):
return (x == (y <= (z or x))) and w
for p in permutations('xyzw'):
for a, b, c, d, e in product([0, 1], repeat=5):
table = [(1, 0, 1, a, 1),
(0, b, c, 0, 1),
(1, 0, d, e, 1)]
if len(set(table))< 3:
continue
if all(F(**dict(zip(p, row))) == row[-1] for row in table):
print(*p)
Ответ: \(xywz\)