← Все вопросы

Задание 2 КЕГЭ: дана часть таблицы истинности — как определить, какому столбцу какая переменная?

Задан 19 месяцев назад1.5к просмотров2 ответа
7

В задании 2 дают логическое выражение и кусок таблицы истинности, где столбцы переменных перемешаны (подписаны не x1, x2, а как попало), плюс есть строки, для которых выражение истинно. Надо понять, в каком порядке идут переменные. Я понимаю, как строить таблицу истинности, но вот этот "матчинг столбцов" меня убивает. Как действовать?

2 ответа

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

Идея: построй на питоне ВСЕ строки, на которых выражение истинно, а потом сопоставь их с данным фрагментом таблицы.

from itertools import product

# выражение, например: (x1 -> x2) and (x2 -> x3) and (x3 -> x4)
for vals in product([0, 1], repeat=4):
    x1, x2, x3, x4 = vals
    F = (not x1 or x2) and (not x2 or x3) and (not x3 or x4)
    if F:
        print(vals)   # печатаем только истинные наборы

Теперь у тебя список истинных наборов, например (0,0,0,0), (0,0,0,1)... В задании дан фрагмент с такими же строками, но столбцы переставлены. Сопоставляй:

  1. Возьми строки фрагмента (значения 0/1 по неизвестным столбцам).
  2. Найди, какая перестановка столбцов превращает их в строки из твоего вывода.
  3. Часто хватает уникальных строк: если в твоём списке есть строка с единственной единицей в позиции x3 — она однозначно ловит, где столбец x3 во фрагменте.

То есть код даёт эталон, а ты подбираешь перестановку столбцов под эталон.

5

Практический способ матчинга без полного перебора перестановок: посчитай в эталонных истинных наборах, сколько единиц в каждом столбце (x1, x2, x3, x4). Потом во фрагменте задания посчитай число единиц в каждом данном столбце. Столбец эталона и столбец фрагмента с одинаковым числом единиц — кандидаты на совпадение. Если числа единиц у всех переменных разные — задача решается сразу однозначно. Если совпадают — добивай по конкретным строкам.

Ваш ответ

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