This media is not supported in your browser
VIEW IN TELEGRAM
С каждым годом ЕГЭ все больше смещается в сторону программирования. Почти каждую задачу можно решить кодом, поэтому я публикую разбор второго номера с полным решением через код:
from itertools import *
def F(x, y, z, w):
return ((x <= y) or (z <= w)) and ((z == y) <= (w == x))
for a1, a2, a3, a4 in product([0, 1], repeat=4):
table = [(a1, 1, 0, a2), (0, 1, 0, 1), (a3, 1, 0, a4)]
if len(set(table)) == len(table):
for i in permutations('xyzw'):
if [F(**dict(zip(i, r))) for r in table] == [0, 0, 0]:
print(*i, sep='')
Please open Telegram to view this post
VIEW IN TELEGRAM
❤7❤🔥5👍5
#kege #yandex
#reshu #statgrad
#polyakov
#ЕГЭ1 #ЕГЭ10 #ЕГЭ19
#ЕГЭ2 #ЕГЭ11 #ЕГЭ20
#ЕГЭ3 #ЕГЭ12 #ЕГЭ21
#ЕГЭ4 #ЕГЭ13 #ЕГЭ22
#ЕГЭ5 #ЕГЭ14 #ЕГЭ23
#ЕГЭ6 #ЕГЭ15 #ЕГЭ24
#ЕГЭ7 #ЕГЭ16 #ЕГЭ25
#ЕГЭ8 #ЕГЭ17 #ЕГЭ26
#ЕГЭ9 #ЕГЭ18 #ЕГЭ27
Поддержать автора донатом
Please open Telegram to view this post
VIEW IN TELEGRAM
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
Информатика ЕГЭ | itpy
Поддержать автора донатом
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Автор: Демоверсия 2025
Уровень: Базовый
Миша заполнял таблицу истинности логической функции F=((w→y)→x)∨¬z, но успел заполнить лишь фрагмент из трёх различных её строк, даже не указав, какому столбцу таблицы соответствует каждая из переменных w, x, y, z.
Базовой код, позволяет третий год подряд решать 2 номер ЕГЭ без особых проблем.
from itertools import *
def F(x, y, z, w):
return ((w <= y) <= x) or (not z)
for a1, a2, a3, a4, a5, a6, a7 in product([0, 1], repeat=7):
table = [(a1, a2, 1, a3), (a4, 0, a5, a6), (a7, 1, 0, 0)]
if len(set(table)) == len(table):
for i in permutations('xyzw'):
if [F(**dict(zip(i, r))) for r in table] == [0, 0, 0]:
print(*i, sep='')
# Ответ: zywx
from itertools import *
Импортируем все функции из модуля itertools, который предоставляет инструменты для работы с итерациями, включая произведение и перестановки.
def F(x, y, z, w):
Определяем функцию F, которая принимает четыре аргумента x, y, z и w.
return ((w <= y) <= x) or (not z)
Возвращаем результат логического выражения, которое проверяет две условия: первое - сравнение w и y, затем с x, и второе - отрицание z.
for a1, a2, a3, a4, a5, a6, a7 in product([0, 1], repeat=7):
Генерируем все возможные комбинации из 7 бит (0 и 1) и проходим по ним, присваивая значения переменным a1 до a7.
table = [(a1, a2, 1, a3), (a4, 0, a5, a6), (a7, 1, 0, 0)]
Создаем список table, состоящий из трех кортежей. Первый кортеж состоит из a1, a2, 1 и a3, второй - из a4, 0, a5 и a6, третий - из a7, 1, 0 и 0.
if len(set(table)) == len(table):
Проверяем, все ли кортежи в table уникальны, сравнивая длину множества уникальных элементов и длину самого списка table.
for i in permutations('xyzw'):
Проходим по всем перестановкам строк 'xyzw', присваивая текущую перестановку переменной i.
if [F(**dict(zip(i, r))) for r in table] == [0, 0, 0]:
Создаем список, применяя функцию F к каждой строке table с использованием текущей перестановки i. Мы создаем словарь с парами (ключ, значение) с помощью zip и распаковываем его в функцию F. Сравниваем результат с списком [0, 0, 0], который обозначает, что все результаты функции F должны быть нулем.
print(*i, sep='')
Если условие выполнено, печатаем текущую перестановку i, разделяя элементы пробелами.
Наша Stepik подборкой задач
Please open Telegram to view this post
VIEW IN TELEGRAM
3 6 4 3 1