← Все вопросы

Как построить таблицу истинности в задании 2 ЕГЭ по информатике?

Задан 28 месяцев назад1.3к просмотров2 ответа
10

Задание 2 с логической функцией и кусочком таблицы истинности меня вымораживает. Дают выражение с И, ИЛИ, импликацией и просят определить порядок столбцов x, y, z, w. Как решать это надёжно?

2 ответа

15
✓ Принятый ответ — помог автору

Задание 2 — сопоставить столбцы фрагмента таблицы истинности переменным в логическом выражении. Самый надёжный путь — проверить Python-перебором всех наборов.

Идея вручную: ищи строки, где функция = 1 (или = 0, смотря что дано), и подбирай, какой столбец какой переменной соответствует.

Но проще и без ошибок — скрипт. Перебираешь все комбинации переменных, считаешь функцию, сравниваешь с данными строками:

from itertools import product

# F = (x -> y) and (y -> z) ...  записываешь как в условии
def F(x, y, z, w):
    impl = lambda a, b: (not a) or b
    return impl(x, y) and impl(z, w)  # пример

for vals in product([0,1], repeat=4):
    if F(*vals) == 1:
        print(vals)

Получаешь все наборы, дающие нужное значение, и сопоставляешь с фрагментом таблицы по совпадению.

Импликация A→B в Python: (not A) or B. Это главное, где все путаются: A→B ложно ТОЛЬКО когда A=1, B=0.

Частая ошибка: неверно перевести импликацию или эквивалентность из условия в код. Выпиши таблицу операций на черновик: 0→0=1, 0→1=1, 1→0=0, 1→1=1.

На codechick есть разбор логических операций для ЕГЭ.

4

Если без компьютера: запомни, что импликация x→y равна нулю в единственном случае x=1, y=0. Поэтому в задании удобно искать строки с нулём функции — их мало, и они сильнее ограничивают.

Эквивалентность (x≡y) равна 1, когда переменные равны. Зная это, перебираешь варианты соответствия столбцов и отбрасываешь те, что противоречат хоть одной строке.

Ваш ответ

Войдите, чтобы ответить на вопрос.