Как сделать таблицу истинности в питоне
Мы уже умеем писать функции, которые проверяют одиночные условия. Теперь научимся строить составные условия.
Хороший пример: проверка пароля. Предположим, что некий сайт при регистрации требует, чтобы пароль был длиннее восьми символов и короче двадцати символов. Да, ограничение выглядит странно, но бывает и такое.
Пароль длиннее 8 символов И пароль короче 20 символов.
Вот функция, которая принимает пароль и говорит, соответствует ли он условиям ( True ) или не соответствует ( False ):
Приоритет этого оператора ниже, чем приоритет операторов сравнения, поэтому выражение length > 8 and length отрабатывает правильно без скобок.
Операторы можно комбинировать в любом количестве и любой последовательности, но когда одновременно встречаются and и or , то приоритет лучше задавать скобками. Ниже пример расширенной функции определения корректности пароля:
Другой пример. Мы хотим купить квартиру, которая удовлетворяет условиям: площадь от 100 кв. метров и больше на любой улице ИЛИ площадь от 80 кв. метров и больше, но на центральной улице Main Street .
Напишем функцию, проверяющую квартиру. Она принимает два аргумента: площадь (число) и название улицы (строку):
И and
A | B | A and B |
---|---|---|
True | True | True |
True | False | False |
False | True | False |
False | False | False |
ИЛИ or
A | B | A or B |
---|---|---|
True | True | True |
True | False | True |
False | True | True |
False | False | False |
Задание
Джон поручил Сэму реализовать автоматическое распознавание солдат Ланнистеров на видео. Идея автоматизировать дозор крепости казалась ему привлекательной. В процессе работы Сэму понадобилось написать функцию, которая определяет, Ланнистер ли перед ним или нет. Немного подумав, Сэм выделил следующие правила определения Ланнистера:
Если у солдата доспехи красного цвета И нет щита
ИЛИ
если у солдата есть щит с изображением льва
то это Ланнистер.
Напишите функцию is_lannister_soldier() , которая принимает на вход два аргумента:
- Цвет доспехов (строка). Если доспехи красные, то строка red .
- None , если щита нет. Строка lion , если щит есть, и на нём изображен лев.
Функция возвращает True , если распознан Ланнистер, и False , если не распознан.
Когда будете проверять на равенство None , делайте так, как принято в настоящем коде на Python: shield is None — код будет выглядеть профессионально! Дело в том. что is работает быстрее в случае некоторых специальных значений вроде None , True и False .
Советы
Определения
Если вы столкнулись с трудностями и не знаете, что делать, задайте вопрос в нашем большом и дружном сообществе
Как решить 2 задание егэ по информатике через python
137) Логическая функция F задаётся выражением (x → y) → (¬x ∧ z). Определите, какому столбцу таблицы истинности функции F соответствует каждая из переменных x, y, z.
? | ? | ? | F |
---|---|---|---|
0 | 0 | 0 | 0 |
0 | 0 | 1 | 0 |
0 | 1 | 0 | 1 |
0 | 1 | 1 | 1 |
1 | 0 | 0 | 1 |
1 | 0 | 1 | 0 |
1 | 1 | 0 | 1 |
1 | 1 | 1 | 0 |
В ответе напишите буквы x, y, z в том порядке, в котором идут соответствующие им столбцы, никаких разделителей между буквами ставить не нужно.
Разбор 2 задания ЕГЭ по информатике
Проверяемые элементы содержания: Умение строить таблицы истинности и логические схемы
"Игнорирование прямо указанного в условии задания требования, что заполненная таблица истинности не должна содержать одинаковых строк. Это приводит к внешне правдоподобному, но на самом деле неверному решению"
Таблицы истинности и порядок выполнения логических операций
Таблица истинности операции НЕ
Таблица истинности операции И (конъюнкция)
Таблица истинности операции ИЛИ (дизъюнкция)
О преобразованиях логических операций читайте здесь.
Решение заданий 2 ЕГЭ по информатике
Плейлист видеоразборов задания на YouTube:
Логическая функция F задается выражением
Ниже приведен фрагмент таблицы истинности функции F, содержащей все наборы аргументов, при которых функция F ложна.
Определите, какому столбцу таблицы истинности функции F соответствует каждая из переменных x, y, z, w.
Перем.1 | Перем.2 | Перем.3 | Перем.4 | F |
. | . | . | . | F |
0 | 1 | 1 | 0 | 0 |
0 | 1 | 1 | 1 | 0 |
1 | 0 | 0 | 0 | 0 |
1 | 1 | 0 | 0 | 0 |
В ответе запишите буквы в том порядке, в котором идут соответствующие им столбцы.
-
Отобразим перебор всех значений использующихся в выражении переменных (всю таблицу истинности). Поскольку в выражении используются 4 переменных, то строк таблицы будет 2 4 =16:
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(x) or y or z) and (x or not(z) or not(w)) if not(F): print(x, y, z, w)
begin writeln(‘x’:7, ‘y’:7, ‘z’:7,’w’:7); for var x:=false to true do for var y:=false to true do for var z:=false to true do for var w:=false to true do if not((not x or y or z) and (x or not z or not w)) then writeln(x:7, y:7, z:7,w:7); end.
Ответ:
Результат: xwzy
Миша заполнял таблицу истинности функции:
но успел заполнить лишь фрагмент из трех различных ее строк, даже не указав, какому столбцу таблицы соответствует каждая из переменных w, x, y, z:
Перем.1 | Перем.2 | Перем.3 | Перем.4 | F |
. | . | . | . | F |
1 | 1 | 0 | ||
1 | 0 | 0 | ||
1 | 1 | 0 | 0 |
Определите, какому столбцу таблицы соответствует каждая из переменных x, y, z, w.
В ответе напишите буквы w, x, y, z в том порядке, в котором идут соответствующие им столбцы.
- Решим задание методом построения полной таблицы истинности.
- Посчитаем общее количество строк в таблице истинности и построим ее:
Результат: ywxz
begin writeln(‘x’:7, ‘y’:7, ‘z’:7,’w’:7); for var x:=false to true do for var y:=false to true do for var z:=false to true do for var w:=false to true do if not((not z and (x xor y))
Сопоставив их с исходной таблицей, получим результат: ywxz
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 z and not(x==y))<=(not(y or w)) if not F: print (x,y,z,w)
Результат: ywxz
Логическая функция F задается выражением
Ниже приведен фрагмент таблицы истинности функции F, содержащей все наборы аргументов, при которых функция F истинна.
Определите, какому столбцу таблицы истинности функции F соответствует каждая из переменных a, b, c, d.
Перем.1 | Перем.2 | Перем.3 | Перем.4 | F |
. | . | . | . | F |
0 | 1 | 0 | 0 | 1 |
1 | 1 | 0 | 0 | 1 |
1 | 1 | 0 | 1 | 1 |
В ответе запишите буквы в том порядке, в котором идут соответствующие им столбцы.
Результат: cbad
Логическая функция F задаётся выражением ¬x ∨ y ∨ (¬z ∧ w).
На рисунке приведён фрагмент таб. ист-ти функции F, содержащий все наборы аргументов, при которых функция F ложна.
Определите, какому столбцу таблицы истинности функции F соответствует каждая из переменных w, x, y, z.
Перем. 1 | Перем. 2 | Перем. 3 | Перем. 4 | F |
. | . | . | . | F |
1 | 0 | 0 | 0 | 0 |
1 | 1 | 0 | 0 | 0 |
1 | 1 | 1 | 0 | 0 |
В ответе напишите буквы w, x, y, z в том порядке, в котором идут соответствующие им столбцы (сначала – буква, соответствующая первому столбцу; затем – буква, соответствующая второму столбцу, и т.д.) Буквы в ответе пишите подряд, никаких разделителей между буквами ставить не нужно.
Результат: xzwy
begin writeln(‘x ‘,’y ‘,’z ‘,’w ‘); for var x:=false to true do for var y:=false to true do for var z:=false to true do for var w:=false to true do if not(not x or y or(not z and w)) then writeln(x:7,y:7,z:7,w:7); end.
Логическая функция F задаётся выражением
Определите, какому столбцу таблицы истинности функции F соответствует каждая из переменных x, y, z, w.
В ответе напишите буквы x, y, z, w в том порядке, в котором идут соответствующие им столбцы.
Перем.1 | Перем.2 | Перем.3 | Перем.4 | F |
. | . | . | . | F |
0 | 0 | 0 | ||
0 | 1 | 0 | 1 | 0 |
1 | 0 | 0 |
Результат: xwzy
Задания для тренировки
Каждое из логических выражений F и G содержит 5 переменных. В табл. истинности для F и G есть ровно 5 одинаковых строк, причем ровно в 4 из них в столбце значений стоит 1.
Сколько строк таблицы истинности для F ∨ G содержит 1 в столбце значений?
Результат: 31
Подробное объяснение данного задания смотрите на видео:
Каждое логическое выражение A и B зависит от одного и того же набора из 7 переменных. В таблицах истинности каждого из этих выражений в столбце значений стоит ровно по 4 единицы.
Каково максимально возможное число единиц в столбце значений таблицы истинности выражения A ∨ B?
Результат: 8
Каждое логическое выражение A и B зависит от одного и того же набора из 8 переменных. В таблицах истинности каждого из этих выражений в столбце значений стоит ровно по 6 единиц.
Каково максимально возможное число нулей в столбце значений таблицы истинности выражения A ∧ B?
Результат: 256
Дан фрагмент таблицы истинности выражения F.
x1 | x2 | x3 | x4 | x5 | x6 | x7 | F |
1 | 0 | 0 | 1 | 1 | 1 | 1 | 0 |
0 | 1 | 0 | 0 | 1 | 0 | 1 | 1 |
0 | 1 | 0 | 1 | 1 | 0 | 1 | 0 |
Каким из приведённых ниже выражений может быть F?
1) ¬x1 ∧ x2 ∧ ¬x3 ∧ ¬x4 ∧ x5 ∧ ¬x6 ∧ x7
2) x1 ∨ x2 ∨ x3 ∨ ¬x4 ∨ ¬x5 ∨ ¬x6 ∨ ¬x7
3) x1 ∧ ¬x2 ∧ x3 ∧ ¬x4 ∧ x5 ∧ x6 ∧ ¬x7
4) x1 ∨ ¬x2 ∨ x3 ∨ x4 ∨ ¬x5 ∨ ¬x6 ∨ x7
Результат: 1
Решение 2 задания ГВЭ по информатике смотрите на видео:
Дано логическое выражение, зависящее от 5 логических переменных:
(¬x1 ∨ ¬x2 ∨ ¬x3 ∨ x4 ∨ x5) ∧ (x1 ∨ x2 ∨ x3 ∨ ¬x4 ∨ ¬x5)
Сколько существует различных наборов значений переменных, при которых выражение истинно?
Теперь рассмотрим каждый случай отдельно:
¬x1 ∨ ¬x2 ∨ ¬x3 ∨ x4 ∨ x5 = 0
и
x1 ∨ x2 ∨ x3 ∨ ¬x4 ∨ ¬x5 = 0.
Результат: 2
Подробное решение задания смотрите в видеоуроке:
Дан фрагмент таблицы истинности для выражения F:
x1 | x2 | x3 | x4 | x5 | x6 | F |
0 | 0 | 1 | 1 | 0 | 0 | 1 |
0 | 0 | 0 | 0 | 1 | 1 | 1 |
1 | 0 | 1 | 0 | 1 | 1 | 1 |
0 | 1 | 1 | 1 | 0 | 1 | 0 |
Укажите максимально возможное число различных строк полной таблицы истинности этого выражения, в которых значение x3 не совпадает с F.
- Полная таблица истинности будет иметь 2 6 = 64 строк (т.к. 6 переменных).
- 4 из них нам известны: в них x3 два раза не совпадает с F.
- Неизвестных строк:
- В неизвестных x3 может не совпадать с F, кроме того, в двух известных x3 не совпадает с F. Соответственно максимально возможное число строк с несовпадающими x3 и F, будет:
Результат: 62
Дан фрагмент таблицы истинности для выражения F:
x1 | x2 | x3 | x4 | x5 | x6 | x7 | F |
0 | 0 | 0 | |||||
0 | 0 | 1 | |||||
1 | 1 | 1 |
Каким выражением может быть F?
1) x1 ∧ (x2 → x3) ∧ ¬x4 ∧ x5 ∧ x6 ∧ ¬x7
2) x1 ∨ (¬x2 → x3) ∨ ¬x4 ∨ ¬x5 ∨ x6 ∨ ¬x7
3) ¬x1 ∧ (x2 → ¬x3) ∧ x4 ∧ ¬x5 ∧ x6 ∧ x7
4) ¬x1 ∨ (x2 → ¬x3) ∨ x4 ∨ x5 ∨ x6 ∧ x7
- Рассмотрим отдельно каждый пункт и найдем последнюю операцию, которая должна быть выполнена (внешнюю).
Результат: 4
В видеоуроке рассмотрено подробное решение 2 задания:
Логическая функция F задается выражением
(y → x) ∧ (y → z) ∧ z.
Определите, какому столбцу таблицы истинности функции F соответствует каждая из переменных x, y, z.
№ | Перем. 1 | Перем. 2 | Перем. 3 | F |
---|---|---|---|---|
. | . | . | F | |
1 | 0 | 0 | 0 | 0 |
2 | 0 | 0 | 1 | 0 |
3 | 0 | 1 | 0 | 1 |
4 | 0 | 1 | 1 | 1 |
5 | 1 | 0 | 0 | 0 |
6 | 1 | 0 | 1 | 0 |
7 | 1 | 1 | 0 | 0 |
8 | 1 | 1 | 1 | 1 |
В ответе напишите буквы x, y, z в том порядке, в котором идут соответствующие им столбцы.
Результат: yzx
Детальный разбор данного задания 2 ЕГЭ по информатике предлагаем посмотреть в видео:
Какие задания из ЕГЭ 2021 по информатике можно реализовать на python?
Программное решение 16-го задания ЕГЭ по информатике
Здравствуйте, форумчане. В ЕГЭ по информатике существует 16-е задание и оно связанно с двумя.
Какие сущетсвуют хорошие онлайн ресурсы ,ютуб каналы и прочее для хорошей подготовки к ЕГЭ по информатике?
Не пишите только про онлайн школы и про сайт решу егэ, т.к. школам не доверяю (уже пройден данный.
Какие есть хорошие онлайн ресурсы ,ютуб каналы и прочее для хорошей подготовки к ЕГЭ по информатике?
Не пишите только про онлайн школы и про сайт решу егэ, т.к. школам не доверяю (уже пройден данный.
Какие бюджетные видеокарты ожидаются в 2021 году от nVidia
Нужна видеокарта geforce 1660. Посмотрел на сайтах-агрегаторах, выбора практически нет. Зато.
C4 ЕГЭ по информатике
Несколько дней пытаюсь понять 1)зачем второй раз дают одно и тоже условие `else if.
C4 В ЕГЭ по информатике
Имеется список учеников разных школ, сдававших экзамен по информатике, с указанием их фамилии.
ЕГЭ по информатике
Всем привет! Я учусь в 10 ом классе, и у меня в школе на уроках информатики мы не заходили дальше.
Егэ по информатике
Как это решать? И как решить проще В8 и быстрей, вместо того, чтобы всё это писать, писать.
ЕГЭ по информатике
Здравствуйте! Кто из поситтителей данного форума сдавал в 11 классе информатику в форме ЕГЭ? Дело в.
ЕГЭ по информатике
Извините если не в ту тему написал, не могу понять куда лучше это написать. На каком языке.
Я хочу иметь таблицу истинности, в которой пользователь может вводить значения для входов и выходов. Я попытался сделать это с помощью записей, но код повторяется много, и мне было интересно, есть ли более простой способ сделать таблицу истинности.
Я попытался использовать цикл for для создания записей, но при этом всегда возникают ошибки. Мне также было интересно узнать, как я буду проверять, вводит ли пользователь правильные значения для таблицы истинности, у меня есть текстовый файл с вопросами и ответами, но я не знаю, как заставить программу проверять ответы из текстового файла. Спасибо за помощь.
Я испытываю некоторые затруднения при выполнении некоторой домашней работы, связанной с созданием таблиц истинности в Пайтоне. Я попытался идти в Рабочий день, но они ничего не знают так, что я должен спросить вас парни.
В этой проблеме, вы осуществите функции для печати таблиц истинности для формул с переменными. Можно использовать следующую функцию помощника, которая печатает разграниченный счетом список ценностей.
вышеупомянутая функция может использоваться следующим образом
можно также использовать следующую функцию помощника, которая возвращает список названий аргумента функции:
вышеупомянутая функция может использоваться следующим образом:
A: Осуществите функцию truthtableXY (f), который берет в качестве ее входа единственную функцию f (т.е., функция Пайтона, соответствующая формуле, такой как те, вы определили в проблеме № 2 выше). Можно предположить, что f берет два булевых аргумента x и y. Функция должна напечатать таблицу истинности для f.
B: Осуществите таблицу истинности (f) рекурсивной функции, которая берет в качестве ее первого аргумента единственную функцию f (т.е., функция Пайтона, соответствующая формуле). Функция f может взять любое отличное от нуля количество аргументов. Функция должна напечатать таблицу истинности для f.
Ваша таблица истинности () функция должна использовать рекурсивный возвращающийся подход и может быть организована следующим образом:
- у функции должна быть секунда значения параметров со значением по умолчанию [], который будет списком ценностей функция, растет и в конечном счете проходит к f;
- , Если список оценивает, пуст, функция должна напечатать ряд, содержащий все имена переменной (один заголовок столбца за переменную);
- , Если список оценивает, является той же самой длиной как список переменных f, функция должна напечатать ряд ценностей, содержащих все ценности в ценностях, а также результат применения f к тому списку ценностей (используйте *-operator, чтобы применить f к списку аргументов);
- , Если список оценивает, короче, чем список переменных f, функция должна сделать рекурсивные звонки таблице истинности () с изменениями approprate аргументов таблицы истинности ().
C: Осуществите функцию ряды (f), который берет в качестве ее первого аргумента единственную функцию f (т.е., функция Пайтона, соответствующая формуле). Функция должна возвратить количество рядов в таблице истинности для f.
Читайте также: