Задание 2. Информатика. ЕГЭ. Поляков-6246
- Просмотры: 28
- Изменено: 30 октября 2024
(PRO100 ЕГЭ) Логическая функция \(F\) задаётся выражением $$ \neg (x \to w) \lor (y \to z) \lor \neg y. $$ На рисунке приведён частично заполненный фрагмент таблицы истинности функции \(F\), содержащий неповторяющиеся строки. Определите, какому столбцу таблицы истинности функции \(F\) соответствует каждая из переменных \(x\), \(y\), \(z\), \(w\).
? | ? | ? | ? | F |
---|---|---|---|---|
0 | 0 | |||
0 | 1 | 0 | ||
1 | 0 | 0 |
В ответе напишите буквы \(x\), \(y\), \(z\), \(w\) в том порядке, в котором идут соответствующие им столбцы. Буквы в ответе пишите подряд, никаких разделителей между буквами ставить не нужно.
Решение:
Дизъюнкция термов равна нулю, значит каждый из них равен нулю на каждой строке таблицы. Тогда \(\neg y = 0 \Rightarrow y = 1\), т.е. \(y\) — это третий столбец. Отсюда, \(y \to z = 0 \Rightarrow z = 0\), т.е. \(z\) — 4-й столбец. \( x \to w = 0\) при \(x = 1, \, w = 0\). Чтобы этого не случилось, полагаем \(x\) — первый столбец, \(w\) — второй столбец.
Python
from itertools import product, permutations
def F(x, y, z, w):
return (not (x <= w)) or (y <= z) or (not y)
for p in permutations('xyzw'):
for a, b, c, d, e, f, g in product([0, 1], repeat=7):
table = [[a, 0, b, c, 0],
[0, 1, d, e, 0],
[1, f, g, 0, 0]]
if table[0] == table[2]:
continue
if all(F(**dict(zip(p, row))) == row[-1] for row in table):
print(*p)
Ответ: \(xwyz\)