This media is not supported in your browser
VIEW IN TELEGRAM
Автор: Статград
Уровень: Базовый
Логическая функция F задаётся выражением:
((x ∨ y) → (y ∧ w)) ≡ ¬ ((y ∧ z) → (w ∨ x))
Дан частично заполненный фрагмент, содержащий неповторяющиеся
строки таблицы истинности функции F.
1 1 _ 1 | 1
0 _ 0 0 | 1
0 0 1 1 | 1
from itertools import *
def F(x, y, z, w):
return ((x or y) <= (y and w)) == (not((y and z) <= (w or x)))
for a1, a2 in product([0, 1], repeat=2):
table = [(1, 1, a1, 1), (0, a2, 0, 0), (0, 0, 1, 1)]
if len(set(table)) == len(table):
for i in permutations('xyzw'):
if [F(**dict(zip(i, r))) for r in table] == [1, 1, 1]:
print(*i, sep='')
# Ответ: zywx
from itertools import *
Импорт функций из модуля itertools, который предоставляет различные инструменты для работы с итерациями.
def F(x, y, z, w):
Определение функции F с параметрами x, y, z, w.
return ((x or y) <= (y and w)) == (not((y and z) <= (w or x)))
Возвращение результата выражения, которое сравнивает логические операции с параметрами функции.
for a1, a2 in product([0, 1], repeat=2):
Цикл, в котором перебираются все возможные комбинации пар из 0 и 1.
table = [(1, 1, a1, 1), (0, a2, 0, 0), (0, 0, 1, 1)]
Создание списка table с кортежами чисел 0 и 1, используемыми в качестве аргументов функции.
if len(set(table)) == len(table):
Проверка условия, что все элементы в table уникальны.
for i in permutations('xyzw'):
Цикл, который перебирает все перестановки символов 'xyzw'.
if [F(**dict(zip(i, r))) for r in table] == [1, 1, 1]:
Проверка условия, что результаты функции F для каждого элемента из table равны [1, 1, 1].
print(*i, sep='')
Вывод комбинации символов i без разделителя на экран.
Тут отвечают на вопросы
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Важное свойство Python - возможность преобразования чисел в логические значения. В этом языке программирования все числа, кроме нуля, включая отрицательные, считаются истинными (True). Ноль же интерпретируется как ложь (False). Таким образом, Python позволяет проводить логические операции
and, or, not
над числами без проблем.Логические операции с числами в Python выполняются в соответствии с таблицами истинности операторов, что облегчает понимание и работу с логическими выражениями в контексте чисел.
Информатика ЕГЭ | itpy
Тут отвечают на вопросы
Please open Telegram to view this post
VIEW IN TELEGRAM
Что покажет этот код?
Anonymous Quiz
5%
(4, 12, 2)
29%
(9, 9)
37%
(4, 7, 5, 2)
8%
9.9
5%
18
16%
Произойдет ошибка
Что выведет этот код?
Anonymous Quiz
40%
(4, 12, 2)
14%
(9, 9)
9%
(4, 7, 5, 2)
13%
9.9
2%
18
22%
Произойдет ошибка
Please open Telegram to view this post
VIEW IN TELEGRAM
Надо ли сделать на нее отдельный разбор?
Anonymous Poll
85%
Да, было бы здорово 🫠
15%
Нет, задачка для слабых 🤕
В целом, решение этой задачи я уже опубликовал в чате. Присоединяйтесь и задавайте свои вопросы, ведь обучение состоит из формата вопрос-ответ ☝️
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Автор: Статград
Уровень: Базовый
При каком наименьшем целом A выражение
((y < 20) → (x > 70)) ∨ ¬((x < A) → (y > A))
окажется тождественно истинным при любых целых значениях x и y?
Все 15 номера суперудобно решать через функцию all() про нее писали в этой статье.
def F(x, y, A):
return ((y < 20) <= (x > 70)) or (not((x < A) <= (y > A)))
for A in range(10000):
if all(F(x, y, A) for x in range(100) for y in range(100)):
print(A)
break
# Ответ: 71
def F(x, y, A):
Определение функции F, которая принимает три аргумента: x, y и A.
return ((y < 20) <= (x > 70)) or (not((x < A) <= (y > A)))
Функция возвращает результат логического выражения, которое проверяет два условия и возвращает результат их логической операции or.
for A in range(10000):
Запуск цикла for, который перебирает значения A от 0 до 9999.
if all(F(x, y, A) for x in range(100) for y in range(100)):
Проверка: все результаты функции F(x, y, A) истинны для всех комбинаций значений x от 0 до 99 и y от 0 до 99.
print(A)
Вывод значения A, которое соответствует условиям задачи, после чего выполнение программы завершается с помощью оператора break.
Тут отвечают на вопросы
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
В преддверии ЕГЭ моя близкая подруга Полина проводит интенсив по математике ❔
Дата проведения:
- 24 и 25 мая - первая часть
- 29 и 30 мая - вторая часть (задачи №13, 15, 16, 18, 19)
Доступны два тарифа:
- Тариф с проверкой (4500 рублей за 8,5 часов)
- Тариф без проверки (3200 рублей за 8,5 часов)
- Каждому участнику будут отправлены шпаргалки для экзамена!🚀
Количество мест на тарифе с проверкой ограничено (работы будут проверены экспертом ЕГЭ в кратчайшие сроки, очень оперативно)☝️
Используйте промокод:
Получите скидку в размере 500 рублей.
Также действует акция:😂
Дата проведения:
- 24 и 25 мая - первая часть
- 29 и 30 мая - вторая часть (задачи №13, 15, 16, 18, 19)
Доступны два тарифа:
- Тариф с проверкой (4500 рублей за 8,5 часов)
- Тариф без проверки (3200 рублей за 8,5 часов)
- Каждому участнику будут отправлены шпаргалки для экзамена!
Стоимость в пересчете на час примерно ~380 рублей.
Количество мест на тарифе с проверкой ограничено (работы будут проверены экспертом ЕГЭ в кратчайшие сроки, очень оперативно)
Используйте промокод:
itpy
Получите скидку в размере 500 рублей.
Также действует акция:
"Приведи друга"
и получите скидку в 1000 рублей! Скидки суммируются - хоть в плюс залетай Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM