Логическая функция F задаётся выражением (x → y) ∧ (¬x → ¬z) ∨ w.
Ниже приведён частично заполненный фрагмент таблицы истинности функции F, содержащий неповторяющиеся строки. Определите, какому столбцу таблицы истинности функции F соответствует каждая из переменных x, y, z, w.
Впишите эти переменные в соответствующие ячейки таблицы.
Вспомним обозначение в алгебре логики.
→ импликация. Ложна только тогда, когда из 1 (истины) следует 0 (ложь).
∧ конъюнкция (логическое умножение, и). Истинно только тогда, когда 1 умножаем на 1.
¬ инверсия (логическое отрицание). Делает из лжи истину и наоборот.
∨ дизъюнкция (логическое сложение, или). Ложно только если 0 + 0.
Импликацию можно заменить по закону Алгебры логики.
А → В = ¬А ∨ В
Отрицание целой скобки (выражения):
¬(А ∨ В) = ¬А ∧ ¬В (знак ∨ меняется на противоположный)
¬(А ∧ В) = ¬А ∨ ¬В (знак ∧ меняется на противоположный)
Запишем наше выражение с учётом законов.
Было (x → y) ∧ (¬x → ¬z) ∨ w.
Стало (¬x ∨ y) ∧ (x ∨ ¬z) ∨ w.
Запишем наше выражение на языке Питон.
(¬x ∨ y) ∧ (x ∨ ¬z) ∨ w
(not x or y) and (x or not z) or w
Так как в столбце F у нас везде 0 (ложь), то добавляем not перед всем выражением:
not((not x or y) and (x or not z) or w)
Осталось сравнить таблицу из условий по количеству нулей и единиц в столбцах с тем, что выдал Питон. Но чисто визуально уже всё видно.
Код для копирования (не забываем про отступы, их Дзен съедает):
print ('x y z w')
for x in range (0, 2):
for y in range (0, 2):
for z in range (0, 2):
for w in range (0, 2):
if not((not x or y) and (x or not z) or w):
print (x, y, z, w)
#шаблонегэинформатика
#егэинформатика
#питон