Информатика | Илья Андрианов | itpy 🧑‍💻
1.03K 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
🚩🚩 Разбор номера 39241 #reshu по информатике #ЕГЭ12

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

Задачка 12 номера с сайте Решу ЕГЭ. Интересна она благодаря условию: "После выполнения программы получилась строка, содержащая только двойки".

👩‍💻 Код решения:
for n in range(201, 1000):
s = '1' * n
while '111' in s or '222' in s:
s = s.replace('111', '22', 1)
s = s.replace('222', '1', 1)
if len(s) == s.count('2'):
print(n)
break


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

Информатика ЕГЭ | чатик itpy 🧑‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
13👍98
This media is not supported in your browser
VIEW IN TELEGRAM
🚩🚩 Разбор номера 2110 #polyakov по информатике #ЕГЭ12
Уровень:
Сложный

🚩 Условие задачи:
Дана программа для исполнителя Редактор:

ПОКА нашлось(21)
заменить (21, 6)

Исходная строка содержит десять единиц и некоторое количество двоек, других цифр нет, точный порядок расположения единиц и двоек неизвестен. После выполнения программы получилась строка с суммой цифр 50. Какое наименьшее количество двоек могло быть в исходной строке?


🚩 Теоретическая справка:
Опишу в следующем посте*


👩‍💻 Код решения:
from itertools import *

for n in range(1, 10):
for s in product('12', repeat=10+n):
if s.count('1') == 10:
s = ''.join(s)

while '21' in s:
s = s.replace('21', '6', 1)
if sum(map(int, s)) == 50:
print(n)
exit()

# Ответ: 8


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

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


2⃣ for n in range(1, 10):
Цикл for, который проходит по значениям n от 1 до 9 включительно.


3⃣ for s in product('12', repeat=10+n):
Вложенный цикл for, который поочередно формирует кортежи из повторений символов '1' и '2', накопленных 10+n раз, и сохраняет их в переменную s.


4⃣ if s.count('1') == 10:
Проверка условия: если символ '1' встречается в строке s 10 раз.


5⃣ s = ''.join(s)
Преобразование кортежа в строку s.


6⃣ while '21' in s:
Цикл while, который будет продолжаться до тех пор, пока в строке s присутствует подстрока '21'.


7⃣ s = s.replace('21', '6', 1)
Замена первого вхождения подстроки '21' на символ '6' в строке s.


8⃣ if sum(map(int, s)) == 50:
Проверка условия: если сумма цифр в строке s, преобразованных в целые числа, равна 50.


0⃣ print(n)
Вывод значения переменной n.


🔟 exit()
Завершение выполнения программы.


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

Информатика ЕГЭ | чатик itpy 🧑‍💻
Тут отвечают на вопросы
Please open Telegram to view this post
VIEW IN TELEGRAM
1077
This media is not supported in your browser
VIEW IN TELEGRAM
1⃣2⃣ Шпаргалка ЕГЭ | Задание #ЕГЭ12 #шпора

📌 Ссылка на полную версию шпаргалки/методички на Notion.

Поставь ❤‍🔥, отправь другу, и забирай несколько полезных функций, которые уже ждут тебя здесь:

🚩 Пример типового решения:
s = 170 * '1' + 100 * '3' + 7 * '2'

while '11' in s:
s = s.replace('112', '4', 1)
s = s.replace('113', '2', 1)
s = s.replace('42', '3', 1)
s = s.replace('43', '1', 1)

print(s)


🚩 s = 170 * '1' + 100 * '3' + 7 * '2'
Пример создания строка s, состоящая из 170 символов '1', за которыми следует 100 символов '3', а затем 7 символов '2'.


🚩 while '11' in s:
Начинается цикл, который будет выполняться до тех пор, пока в строке s есть подстрока '11'.


🚩 if '11' in s:
Если в строке s есть подстрока '11', то:


🚩 s = s.replace('112', '4', 1)
Заменяется первое вхождение подстроки '112' на символ '4' в строке s.


🚩 summa = sum([int(i) for i in s])
Создается переменная summa, с суммой цифр строки.


Информатика ЕГЭ | itpy 🧑‍💻
Поддержать автора донатом 💵
Please open Telegram to view this post
VIEW IN TELEGRAM
965
This media is not supported in your browser
VIEW IN TELEGRAM
🚩🚩 Разбор номера 17525 #kege по информатике #ЕГЭ12
Автор: Основная волна 07.06.2024
Уровень:
Базовый

🚩 Условие задачи:
Какая строка получится в результате применения приведённой ниже программы к строке, состоящей из 100 идущих подряд
цифр 9?

ПОКА нашлось (33333) ИЛИ нашлось (999)
ЕСЛИ нашлось (33333)
ТО заменить (33333, 99)
ИНАЧЕ заменить (999, 3)


🚩 Теоретическая справка:
Задачи 12 номера можно назвать типовыми (не редкий случай для нашего экзамена), запомнить нужно только несколько основных вещей: 1) строка умноженная на число будет дублироваться 2) всегда пересоздаем строку s = s.replace() иначе строка не изменится 3) в методе .replace('a', 'b', 1) всегда ставим единичку - так как замены производятся последовательно.


👩‍💻 Код решения:
s = '9' * 100
while '33333' in s or '999' in s:
if '33333' in s:
s = s.replace('33333', '99', 1)
else:
s = s.replace('999', '3', 1)
print(s)

# Ответ: 333


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

1⃣ s = '9' * 100
Инициализируем строку s, состоящую из 100 символов '9'.


2⃣ while '33333' in s or '999' in s:
Запускаем цикл, который будет продолжаться до тех пор, пока в строке s присутствует подстрока '33333' или '999'.


3⃣ if '33333' in s:
Проверяем, присутствует ли в строке подстрока '33333'.


4⃣ s = s.replace('33333', '99', 1)
Если '33333' присутствует, заменяем её на '99' (первая замена слева направо).


5⃣ else:
Если подстроки '33333' нет в строке, выполняется следующий блок кода.


6⃣ s = s.replace('999', '3', 1)
Если '999' присутствует, заменяем её на '3' (первая замена слева направо).


7⃣ print(s)
Выводим итоговое значение строки s после завершения всех замен, когда условия больше не выполняются.


Информатика ЕГЭ | itpy 🧑‍💻
Наша Stepik подборкой задач 😼
Please open Telegram to view this post
VIEW IN TELEGRAM
2654
This media is not supported in your browser
VIEW IN TELEGRAM
🚩🚩 Разбор номера 17866 #kege по информатике #ЕГЭ12
Автор: Демоверсия 2025
Уровень: Базовый


🚩 Условие задачи:
Какая строка получится в результате применения приведённой ниже программы к строке,
состоящей из 81 идущей подряд цифре 1? В ответе запишите полученную строку.

ПОКА нашлось (11111) ИЛИ нашлось (888)
ЕСЛИ нашлось (11111)
ТО заменить (11111, 88)
ИНАЧЕ заменить (888, 8)


🚩 Теоретическая справка:
Предлагаю вам альтернативное решение базового 12 номера с использованием библиотеки re. Базовое решение оставлю в комментариях к этому посту!


👩‍💻 Код решения:
from re import *
s = '1' * 81
while '11111' in s or '888' in s:
s = sub('11111', '8', s, 1)
s = sub('888', '8', s, 1)
print(s)

# Ответ: 881


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

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


2⃣ s = '1' * 81
Создаем строку s, состоящую из 81 символа '1'.


3⃣ while '11111' in s or '888' in s:
Начинаем цикл, который продолжается до тех пор, пока строка s содержит подстроку '11111' или '888'.


4⃣ s = sub('11111', '8', s, 1)
Заменяем первое вхождение подстроки '11111' на '8' в строке s.


5⃣ s = sub('888', '8', s, 1)
Заменяем первое вхождение подстроки '888' на '8' в строке s.


6⃣ print(s)
Выводим результирующую строку s после завершения цикла.


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

Информатика ЕГЭ | чатик itpy 🧑‍💻
Поддержать автора донатом 💵
Please open Telegram to view this post
VIEW IN TELEGRAM
2552
1⃣2⃣Шпаргалка для номера #ЕГЭ12 #шпора

Для закрепления материала оставляю ссылку на подборку всех 12 номеров разобранных на моем канале.

📚 По этой ссылке ты найдешь мои шпаргалки по всем остальным номерам ЕГЭ


🚩🚩 Разбор номера 20901 #kege по информатике #ЕГЭ12
Автор: Апробация 05.03.25
Уровень: Базовый

s = '1' + 90 * '0'
while '1' in s:
if '10' in s:
s = s.replace('10', '0001', 1)
else:
s = s.replace('1', '000', 1)
print(s.count('0'))

В данном задании необходимо найти количество нулей в полученной строке.


🚩🚩 Разбор номера 20958 #kege по информатике #ЕГЭ12
Уровень: Базовый

M = []
for n in range(4, 10000):
s = '4' + n * '7'
while '444' in s or '777' in s:
if '777' in s:
s = s.replace('777', '4', 1)
else:
s = s.replace('444', '7', 1)
summ = s.count('4') * 4 + s.count('7') * 7
M.append(summ)
print(max(M))

В этом прототипе нужно найти максимальную сумму цифр в строке.


🚩 Оставляю короткую заметку по поиску суммы цифр в строке:
s = '12345'

summ = s.count('4') * 4 + s.count('7') * 7

summ = sum(map(int, s))

summ = sum([int(x) for x in s])

summ = sum([int(x) for x in s if x.isdigit()])

summ = 0
for x in s:
summ += int(x)

💪 Более подробный пост на эту тему публиковал выше 🔝

📌 Тут оставлю сылку на старую версию шпаргалки, которую делал в Notion


По традиции набираем 35+ реакций и вечером заливаю ряд постов про 27 номер!


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

Информатика ЕГЭ | чатик itpy 🧑‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
10❤‍🔥10👍44🔥21
🚩🚩 Разбор #ДВ2025 номера #ЕГЭ12 по информатике

🚩 Условие задачи:
Дана программа для Редактора:
ПОКА нашлось (577) ИЛИ нашлось (677) ИЛИ нашлось (657)
ЕСЛИ нашлось (577)
ТО заменить (577,76)

ЕСЛИ нашлось (677)
ТО заменить (677,75)

ЕСЛИ нашлось (657)
ТО заменить (657, 56)

На вход приведённой выше программе поступает строка, начинающаяся с цифры «5», а затем содержащая п цифр «7» (3 < n < 10000). Определите наибольшее значение п, при котором сумма цифр в строке, получившейся в результате выполнения программы, равна 76.


👩‍💻 Код решения:
for n in range(4, 10000):
s = '5' + n * '7'
while '577' in s or '677' in s or '657' in s:
if '577' in s:
s = s.replace('577', '76', 1)
if '677' in s:
s = s.replace('677', '75', 1)
if '657' in s:
s = s.replace('657', '56', 1)
summ = sum([int(i) for i in s])
if summ == 76:
print(n)

# Ответ: 19


#⃣ Разбор задач ДВ, первый день 10.06.25
#⃣ Шпаргалки по всем остальным номерам ЕГЭ

Информатика ЕГЭ | чатик itpy 🧑‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
6❤‍🔥4🔥4👍2