Овсиенко Алексей
Конспекты по информатике
МЕТОД: PYTHON-ПЕРЕБОР

Задание 2: Таблицы истинности

Задача заключается в восстановлении порядка столбцов в таблице истинности. Мы строим полную таблицу программно и сопоставляем её с фрагментом из задания.

Инверсия (НЕ) not x
Конъюнкция (И) x and y
Дизъюнкция (ИЛИ) x or y
Импликация (→) x <= y
Эквиваленция (≡) x == y

Подробный алгоритм решения

1. Написание скрипта

Выводим заголовок и запускаем 4 вложенных цикла (для x, y, z, w).

print('x y z w')
for x in 0, 1:
  for y in 0, 1:
    for z in 0, 1:
      for w in 0, 1:
        f = (not(y <= x)) or (z <= w) or (not z) # Пример формулы
        if f == 0: # Проверяем на 0 или 1 (по условию)
          print(x, y, z, w)

2. Анализ результата

Когда программа выдала 3-4 строки, начинаем сопоставление:

  • Найдите столбец, в котором больше всего единиц. Сравните его с таблицей в задании.
  • Найдите уникальную строку (например, ту, где всего одна единица).
  • Проверьте "пустые" строки. Если в вашей таблице есть строка (1, 0, 0, 0), а в задании в строке уже стоит две единицы — эта строка вам не подходит.

💡 Важные ловушки

1. Приоритет: NOT выше AND, который выше OR. Импликация и эквиваленция — самые последние. Используйте скобки!

2. Отрицательные выражения: Если в задаче F = 0, пишите if not f: или if f == 0:.

3. Внимательность: Перепроверьте формулу перед запуском. Одна ошибка в <= вместо == уничтожит всё решение.