2.01 Полностью заполненные фрагменты таблицы истинности
Ошибка.
Попробуйте повторить позже
Логическая функция задаётся выражением
Ниже представлен фрагмент таблицы истинности функции Определите, какому столбцу таблицы
истинности функции
соответствует каждая переменная
Решение руками:
так как если
то
а если
то
а
Тогда функция переписывается в таком виде: Во всех трех столбцах
Так
как конъюнкция истинна, если все высказывания, входящие в нее, истинны, то
и
Тогда первый столбик — это
Рассмотрим высказывание Оно истинно, когда
и/или
то есть
(так как
дизъюнкция истинна, когда хотя бы одно высказывание, входящее в нее, истинно). Рассмотрим третью
строку. Как мы определили выше, первый столбец отвечает за
Если второй — это
то
должна
быть равна 1 (так как
если
то есть
Но переменная в третьем столбце равна
1, значит, предположение, что второй столбец — это
было неверным. Значит, второй столбец — это
а третий — это
Проверим это предположение на первой и второй строчках. Подставим соответствующие значения в
функцию. Первая строка: Вторая строка:
Все верно.
Идея решения через циклы:
Программа перебирает все возможные комбинации значений переменных с помощью
вложенных циклов. Для каждой комбинации вычисляется функция
, которая в коде
представлена как
. Если функция равна 1, комбинация выводится вместе с её
значением.
Код решения через циклы
# Выводим заголовок таблицы print("x w z F") # Перебираем все возможные значения переменной x for x in range(2): # Перебираем все возможные значения переменной w for w in range(2): # Перебираем все возможные значения переменной z for z in range(2): # Вычисляем логическую функцию F F = (x or not w) and z # Если значение функции равно 1, выводим комбинацию if F: print(x, w, z, 1)
Идея решения через itertools:
С помощью функции product из модуля itertools генерируются все возможные комбинации значений
. Для каждой комбинации проверяется логическое выражение, и если оно равно 1, комбинация
выводится.
Код решения через itertools
# Импортируем функцию product для генерации комбинаций from itertools import product # Выводим заголовок таблицы print("w x z") # Перебираем все возможные комбинации w, x, z for w,x,z in product([0,1], repeat=3): # Проверяем выполнение логического выражения if (x or not w) and z: # Если результат равен 1, выводим комбинацию print(w,x,z)
Специальные программы

Программа
лояльности v2.0
Приглашай друзей в Школково и получай вознаграждение до 10%!

Крути рулетку
и выигрывай призы!
Крути рулетку и покупай курсы со скидкой, которая привязывается к вашему аккаунту.

Бесплатное онлайн-обучение
Для школьников из приграничных территорий России, проживающих в ДНР, ЛНР, Херсонской, Запорожской, Белгородской, Курской, Брянской областях и Крыму.

Налоговые вычеты
Узнай, как получить налоговый вычет при оплате обучения в «Школково».

Специальное предложение
для учителей
Бесплатный доступ к любому курсу подготовки к ЕГЭ, ОГЭ и олимпиадам от «Школково». Мы с вами делаем общее и важное дело, а потому для нас очень значимо быть чем-то полезными для учителей по всей России!

Вернём деньги за курс
за твою сотку на ЕГЭ
Сдать экзамен на сотку и получить обратно деньги за подготовку теперь вполне реально!