Информатика | Илья Андрианов | itpy 🧑‍💻
1.02K subscribers
265 photos
20 videos
19 files
632 links
По рекламе: @ilandroxxy

Шпаргалки: clck.ru/3FwqWt
📚 Наши курсы: clck.ru/3FwqYb

Разборы: clck.ru/3Fwqay
💬 Чатик: clck.ru/3FwqZa

📺 YouTube: clck.ru/3FwqbX

🙋‍♂️ Я автор: @ilandroxxy
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
🚩 Разбор номера 56502 #reshu по информатике #ЕГЭ2

Полный разбор задачи в Notion

С каждым годом ЕГЭ все больше смещается в сторону программирования. Почти каждую задачу можно решить кодом, поэтому я публикую разбор второго номера с полным решением через код:
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='')


#⃣ Полный список разборов в одном месте

Информатика ЕГЭ | чатик itpy 🧑‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
7❤‍🔥5👍5
This media is not supported in your browser
VIEW IN TELEGRAM
🚩 Разбор номера #statgrad по информатике #ЕГЭ2
Автор: Статград
Уровень:
Базовый

🚩 Условие задачи:
Логическая функция 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


👩‍💻 Комментарии к коду:

1⃣ from itertools import *
Импорт функций из модуля itertools, который предоставляет различные инструменты для работы с итерациями.


2⃣ def F(x, y, z, w):
Определение функции F с параметрами x, y, z, w.


3⃣ return ((x or y) <= (y and w)) == (not((y and z) <= (w or x)))
Возвращение результата выражения, которое сравнивает логические операции с параметрами функции.


4⃣ for a1, a2 in product([0, 1], repeat=2):
Цикл, в котором перебираются все возможные комбинации пар из 0 и 1.


5⃣ table = [(1, 1, a1, 1), (0, a2, 0, 0), (0, 0, 1, 1)]
Создание списка table с кортежами чисел 0 и 1, используемыми в качестве аргументов функции.


6⃣ if len(set(table)) == len(table):
Проверка условия, что все элементы в table уникальны.


7⃣ for i in permutations('xyzw'):
Цикл, который перебирает все перестановки символов 'xyzw'.


8⃣ if [F(**dict(zip(i, r))) for r in table] == [1, 1, 1]:
Проверка условия, что результаты функции F для каждого элемента из table равны [1, 1, 1].


0⃣ print(*i, sep='')
Вывод комбинации символов i без разделителя на экран.


#⃣ Полный список разборов в одном месте

Информатика ЕГЭ | чатик itpy 🧑‍💻
Тут отвечают на вопросы
Please open Telegram to view this post
VIEW IN TELEGRAM
6443
This media is not supported in your browser
VIEW IN TELEGRAM
🚩 Разбор номера 17856 #kege по информатике #ЕГЭ2
Автор: Демоверсия 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


👩‍💻 Комментарии к коду:

1⃣ from itertools import *
Импортируем все функции из модуля itertools, который предоставляет инструменты для работы с итерациями, включая произведение и перестановки.


2⃣ def F(x, y, z, w):
Определяем функцию F, которая принимает четыре аргумента x, y, z и w.


3⃣ return ((w <= y) <= x) or (not z)
Возвращаем результат логического выражения, которое проверяет две условия: первое - сравнение w и y, затем с x, и второе - отрицание z.


4⃣ for a1, a2, a3, a4, a5, a6, a7 in product([0, 1], repeat=7):
Генерируем все возможные комбинации из 7 бит (0 и 1) и проходим по ним, присваивая значения переменным a1 до a7.


5⃣ 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.


6⃣ if len(set(table)) == len(table):
Проверяем, все ли кортежи в table уникальны, сравнивая длину множества уникальных элементов и длину самого списка table.


7⃣ for i in permutations('xyzw'):
Проходим по всем перестановкам строк 'xyzw', присваивая текущую перестановку переменной i.


8⃣ if [F(**dict(zip(i, r))) for r in table] == [0, 0, 0]:
Создаем список, применяя функцию F к каждой строке table с использованием текущей перестановки i. Мы создаем словарь с парами (ключ, значение) с помощью zip и распаковываем его в функцию F. Сравниваем результат с списком [0, 0, 0], который обозначает, что все результаты функции F должны быть нулем.


0⃣ print(*i, sep='')
Если условие выполнено, печатаем текущую перестановку i, разделяя элементы пробелами.


#⃣ Полный список разборов в одном месте

Информатика ЕГЭ | чатик itpy 🧑‍💻
Наша Stepik подборкой задач 😼
Please open Telegram to view this post
VIEW IN TELEGRAM
36431