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

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

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

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

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

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

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