Задание 2. Информатика. ЕГЭ. Поляков-3973
- Просмотры: 46
- Изменено: 23 ноября 2024
(В.Н. Шубинкин) Логическая функция \(F\) задаётся выражением $$ (x \equiv y) \to (z \equiv w). $$ Ниже приведён частично заполненный фрагмент таблицы истинности этой функции, содержащий неповторяющиеся строки. Сколькими способами можно поставить в соответствие переменные \(w\), \(x\), \(y\), \(z\) столбцам таблицы истинности функции \(F\), опираясь на информацию из данного фрагмента?
? | ? | ? | ? | F |
---|---|---|---|---|
0 | 0 | 0 | 1 | 0 |
1 | 1 | 1 | 0 | 0 |
Пример. Функция \(F\) задана выражением \(x \lor y \lor z\), а фрагмент таблицы истинности имеет вид:
? | ? | ? | F |
---|---|---|---|
0 | 1 | 1 | 1 |
В этом случае переменные можно расставить любым способом, значит, ответом будет число \(6\).
Решение:
Python
from itertools import permutations
def F(x, y, z, w):
return (x == y) <= (z == w)
table = [(0, 0, 0, 1, 0),
(1, 1, 1, 0, 0)]
ans = set()
for p in permutations('xyzw'):
if all(F(**dict(zip(p, row))) == row[-1] for row in table):
ans.add(''.join(p))
print(len(ans))
Ответ: \(12\)