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

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

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

📺 YouTube: clck.ru/3FwqbX

🙋‍♂️ Я автор: @ilandroxxy
Download Telegram
Ребят, еще несколько реакций на последний пост и заливаю шпору по 12 номеру ☝️

Ночью дропну плотный разбор 27 аналитического решения.
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
This media is not supported in your browser
VIEW IN TELEGRAM
Почему на экзамене ЕГЭ вас просят сохранять все ваши файлики в одну папку 🗂 #view

📱 Смотреть в TikTok

📱 Смотреть в YouTube

📱 Смотреть в Instagram

📺 Все мои видео в одном месте
Информатика ЕГЭ | чатик itpy 🧑‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
2❤‍🔥7🔥5👨‍💻5👍21
2⃣7⃣ Разбор / Шпаргалка номера #ЕГЭ27
Задача 21425
#kege по информатике #шпора
Автор: Досрочная волна 2025
Уровень: Базовый


PS: Для начала просто внимательно прочитайте условие задачи и сравните его с оригиналом! Также публикую код решения, но пока без комментариев - они будут добавлены постами ниже.

❗️Продолжение разбора 27 номера будет в нескольких постах ниже.

🚩 Условие задачи:
В файле A хранятся данные о звёздах двух кластеров. В файле B хранятся данные о звёздах трёх кластеров.

Для каждого файла определите координаты центра каждого кластера. Затем вычислите четыре числа:
1. PxA – среднее арифметическое абсцисс центров кластеров файла А.
2. PyA – среднее арифметическое ординат центров кластеров файла А.

3. PxB – среднее арифметическое абсцисс центров кластеров файла B.
4. PyB – среднее арифметическое ординат центров кластеров файла B.


В ответе запишите четыре числа: в первой строке сначала целую часть произведения PxA * 10000, затем целую часть произведения Py*10000 для файла А, во второй строке – аналогичные данные для файла B.


🚩 Теоретическая справка:
При этом будем называть центром кластера точку этого кластера, сумма расстояний от которой до всех остальных точек кластера минимальна.

А расстояние между двумя точками на плоскости между точками A(x1, y1) и B(x2, y2) вычисляется по формуле: d(A,B)= ((x2 - x1)**2 + (y2 - y1)**2)**0.5



👩‍💻 Код решения:
from math import dist
clustersA = [[], []]
clustersB = [[], [], []]

for s in open('27_A.txt'):
s = s.replace(',', '.')
x, y = [float(i) for i in s.split()]
if y > 0:
clustersA[0].append([x, y])
else:
clustersA[1].append([x, y])


for s in open('27_B.txt'):
s = s.replace(',', '.')
x, y = [float(i) for i in s.split()]
if x > 0 and y > 0:
clustersB[0].append([x, y])
elif x > 0 and y < 0:
clustersB[1].append([x, y])
else:
clustersB[2].append([x, y])


def center(cl):
R = []
for p in cl:
summa=sum(dist(p, g) for g in cl)
R.append([summa,p])
return min(R)[1]


centersA = [center(cl) for cl in clustersA]
pxA = sum(x for x, y in centersA) / 2 * 10000
pyA = sum(y for x, y in centersA) / 2 * 10000
print(int(pxA), int(pyA))

centersB = [center(cl) for cl in clustersB]
pxB = sum(x for x, y in centersB) / 3 * 10000
pyB = sum(y for x, y in centersB) / 3 * 10000
print(int(pxB), int(pyB))

Ответ:
167990 73043
122627 29105

Файлы для решения задачи:
27_A.xlsx 27_A.txt
27_B.xlsx 27_B.txt


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

Информатика ЕГЭ | чатик itpy 🧑‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥104🔥4🤯2
Товарищи, что по реакциям, я для кого стараюсь? 🥲

⤵️ Продолжение шпаргалки по #ЕГЭ27 #useful

Первое, что необходимо сделать в этой задаче — открыть файл в Excel и, следуя инструкции на картинке, построить точечную диаграмму. С её помощью мы определим, в какой из кластеров попадает каждая точка из файла 27_B.txt.

Затем переходим к распределению этих точек в коде (обращаю внимание, что в этом примере я рассматриваю только файл B, так как он более нагляден).


👩‍💻 Код программы:
clustersB = [[], [], []]

for s in open('27_B.txt'):
s = s.replace(',', '.')
x, y = [float(i) for i in s.split()]
if x > 0 and y > 0:
clustersB[0].append([x, y])
elif x > 0 and y < 0:
clustersB[1].append([x, y])
else:
clustersB[2].append([x, y])



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

1⃣ clustersB = [[], [], []]
• Создаем список из трех пустых подсписков для хранения точек трех кластеров
- clustersB[0] - первый кластер (первая четверть)
- clustersB[1] - второй кластер (четвертая четверть)
- clustersB[2] - третий кластер (вторая и третья четверти вместе)


2⃣ for s in open('27_B.txt'):
Открываем файл '27_B.txt' для чтения и построчно обрабатываем его содержимое


3⃣ s = s.replace(',', '.')
Заменяем запятые на точки для корректного преобразования в float


4⃣ x, y = [float(i) for i in s.split()]
Разбиваем строку по пробелам и преобразуем части в числа с плавающей точкой
x - первая координата (абсцисса)
y - вторая координата (ордината)


5⃣ if x > 0 and y > 0:
Распределяем точку в один из кластеров в зависимости от координат:


6⃣ clustersB[0].append([x, y])
Если обе координаты положительные - точка в первой четверти (кластер 0)


7⃣ elif x > 0 and y < 0:
Если x положительный, а y отрицательный - точка в четвертой четверти (кластер 1)

8⃣ clustersB[1].append([x, y])


0⃣ else:
Все остальные точки (вторая и третья четверти) попадают в кластер 2


🔟 clustersB[2].append([x, y])
Сюда попадают случаи:
x < 0 и y > 0 (вторая четверть)
x < 0 и y < 0 (третья четверть)
x > 0 и y = 0 (на оси X)
x < 0 и y = 0 (на оси X)
x = 0 (на оси Y, независимо от y)


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

Информатика ЕГЭ | чатик itpy 🧑‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
15218👍7❤‍🔥3🤔1
⤵️ Продолжение шпаргалки по #ЕГЭ27 #useful

Далее нам необходимо написать функцию для поиска центра кластера. Но прежде чем перейти к ней, реализуем вспомогательную функцию для вычисления расстояния между двумя точками.

Расстояние между двумя точками на плоскости между точками A(x1, y1) и B(x2, y2) вычисляется по формуле: d(A,B)= ((x2 - x1)**2 + (y2 - y1)**2)**0.5


Что можно описать функцией:
def d(A, B):
x1, y1 = A
x2, y2 = B
return ((x2 - x1)**2 + (y2 - y1)**2)**0.5

print(d([0, 0], [3, 4])) # 5.0


Но так же надо заметить, что эта функция уже описана в питоне, а именно в библиотеке math.

Тот же самый код, но короче через math:
from math import dist

print(dist([0, 0], [3, 4]))



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

Информатика ЕГЭ | чатик itpy 🧑‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
5❤‍🔥86🔥3
Продолжение шпаргалки по #ЕГЭ27 #useful

Теперь разберём функцию для поиска центра кластера. Для примера возьмём кластер:
[[0, 0], [4, 3], [2, 2], [5, 6]]

Напомню, что центром кластера называется точка, для которой сумма расстояний до всех остальных точек кластера минимальна.

Алгоритм следующий:
- Берём произвольную точку p из кластера.
- Вычисляем сумму расстояний от p до всех других точек g этого кластера.
- Повторяем для всех точек и выбираем ту, у которой сумма минимальна.

👩‍💻 Код программы:
from math import dist

def center(cl):
R = []
for p in cl:
summa = 0
for g in cl:
summa += dist(p, g)
R.append([summa,p])
return min(R)[1]


clustersA = [[[0, 0], [4, 3], [2, 2], [5, 6]], []]
cl = clustersA[0]

print(center(cl)) # [2, 2] - центр первого кластера из двух


Суммы для всех точек:

15.638676800652844 [0, 0]
10.39834563766817 [4, 3]
10.06449510224598 [2, 2]
15.972527336075034 [5, 6]



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

1⃣ from math import dist
Импорт функции для вычисления евклидова расстояния между точками.


2⃣ def center(cl):
Функция, которая находит "центр" кластера (точку с минимальной суммой расстояний до остальных).


3⃣ R = []
Список для сохранения результатов.


4⃣ for p in cl:
Первый цикл – перебирает каждую точку кластера.


5⃣ summa = 0
Обнуление суммы расстояний для текущей точки p.


6⃣ for g in cl:
Вложенный цикл – вычисляет расстояние от p до всех точек g в кластере.


7⃣ summa += dist(p, g)
Накопление суммы расстояний для каждой точки p


8⃣ R.append([summa, p])
Cохранение суммы и точки p в список R.


0⃣ return min(R)[1]
Поиск точки с минимальной суммой расстояний (центр).


1⃣1⃣ clustersA = [[[0, 0], [4, 3], [2, 2], [5, 6]], []]
Тестовые данные: список из двух кластеров (второй пуст).


1⃣2⃣ cl = clustersA[0]
Выбор первого кластера для обработки.


1⃣3⃣ print(center(cl))
Вывод результата работы функции.


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

Информатика ЕГЭ | чатик itpy 🧑‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥76👍2
Продолжение шпаргалки по #ЕГЭ27 #useful

Кульминация решения (опять же на примере кластеров из файла B) - поиск центров кластеров и вычисление среднего арифметическое абсцисс центров кластеров файла B и среднего арифметическое ординат центров кластеров файла B.

👩‍💻 Код программы:
centersB = [center(cl) for cl in clustersB]
pxB = sum(x for x, y in centersB) / 3 * 10000
pyB = sum(y for x, y in centersB) / 3 * 10000
print(int(pxB), int(pyB))



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

1⃣ centersB = [center(cl) for cl in clustersB]
Находим центры каждого кластера из списка clustersB


2⃣ pxB = sum(x for x, y in centersB) / 3 * 10000
Вычисляем среднюю x-координату центров кластеров, умножаем на 10000 и делим на 3 (масштабирование)


3⃣ pyB = sum(y for x, y in centersB) / 3 * 10000
Вычисляем среднюю y-координату центров кластеров, умножаем на 10000 и делим на 3 (масштабирование)


4⃣ print(int(pxB), int(pyB))
Выводим результат в виде целых чисел


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

Информатика ЕГЭ | чатик itpy 🧑‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
8❤‍🔥4👍3
Ребят, если найдёте интересные задачки с ДВ — кидайте их мне в лс @ilandroxxy или в анонимные сообщения канала (новая функция в Телеграме, можно отправить по кнопке с картинкой). Всем завтра удачи! Ни пуха ни пера! 💪🔥
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥86❤‍🔥5
🚩🚩 Разбор #ДВ2025 номера #ЕГЭ11 по информатике

🚩 Условие задачи:
На предприятии каждой изготовленной детали присваивают серийный номер, состоящий из 246 символов. В базе данных для хранения каждого серийного номера отведено одинаковое и минимально возможное число байт.

Известно, что для хранения 703_569 серийных номеров доступно не более 77 Мбайт памяти.
Определите максимально возможную мощность алфавита, используемого для записи серийных номеров.



👩‍💻 Код решения:
sym = 246
byte = 77 * 2 ** 20 / 703_569
# не более 77 Мбайт - поэтому округляем вниз
print(byte) # 114.758 -> 114
bit = 114 * 8

# не более 77 Мбайт - поэтому округляем вниз
print(bit / sym) # 3.707 -> 3

# Максимальная мощность:
print(2 ** 3) # 8

# Ответ: 8


🚩 Условие задачи 2:
На предприятии каждой изготовленной детали присваивают серийный номер, состоящий из 3410 символов. В базе данных для хранения каждого серийного номера отведено одинаковое и минимально возможное число байт.

Известно, что для хранения 2984523 серийных номеров доступно не менее 14 Мбайт памяти.
Определите минимально возможную мощность алфавита, используемого для записи серийных номеров.


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

for k in range(1, 10000):
bit = ceil(log2(kod))
byte = ceil(3410 * bit / 8)
if 2_984_523 * byte >= 14 * 1024 * 1024:
print(kod)
break

# Ответ: 2



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

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

🚩 Условие задачи:
В каждой строке шесть натуральных чисел. Определите среднее арифметическое чисел всех строк таблицы, для которых выполнены оба условия:
- в строке есть число, которое повторяется трижды, остальные три числа различны;
- повторяющееся число строки меньше, чем удвоенное минимальное из ее неповторяющихся чисел.


👩‍💻 Код решения:
A = []
for s in open('9.csv'):
M = [int(x) for x in s.split(';')]
p3 = [i for i in M if M.count(i) == 3]
np = [i for i in M if M.count(i) == 1]
if len(p3) == 3 and len(np) == 3:
if p3[0] < 2 * min(np):
A.append(sum(M))
print(sum(A) // len(A))


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

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

🚩 Условие задачи:
Адрес сети и широковещательный адрес не могут быть использованы для адресации сетевых устройств.

Сеть задана ІР-адресом одного из входящих в неё узлов 97.191.34.206 и сетевой маской 255.255.255.240. Определите наибольший IP-адрес данной сети, который может быть присвоен компьютеру.


👩‍💻 Код решения:
from ipaddress import *
net = ip_network('97.191.34.206/255.255.255.240', 0)
for ip in net:
print(ip) # 97.191.34.206
# 97.191.34.207 - не учитываем так как широковещательный

#Ответ: 9719134206



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

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

🚩 Условие задачи:
Даны 9 буквы слова КОМПЬЮТЕР в алфавитном порядке и нужно найти код с нечетным номером, который не начинается на гласные буквы и содержит одну букву К.


👩‍💻 Код решения:
from itertools import *
n = 0
for p in product(sorted('КОМПЬЮТЕР'), repeat=6):
n += 1
word = ''.join(p)
if word[0] not in 'ОЮЕ':
if word.count('К') == 1:
if n % 2 != 0:
print(n)

# Ответ: 472385



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

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

🚩 Условие задачи:
На вход алгоритма подаётся натуральное число N.
Алгоритм строит по нему новое число R следующим образом.
1. Строится троичная запись числа N.
2. Далее эта запись обрабатывается по следующему правилу:
а) если число N делится на 3, то к этой записи дописывается справа две последние цифры троичной записи;
б) если число N не делится на 3, то остаток от деления умножается на 5, переводится в троичную запись и дописывается в конец числа.
3. Результат переводится в десятичную систему и выводится на экран.

Укажите наименьшее число N, после обработки которого с помощью этого алгоритма получается число R, не меньшее чем 290.


👩‍💻 Код решения:
def tri(n):
s = ''
while n > 0:
s += str(n % 3)
n //= 3
return s[::-1]

for n in range(1, 1000):
s = tri(n)
if n % 3 == 0:
s += s[-2:]
else:
s += tri(n % 3 * 5)
r = int(s, 3)
if r >= 290:
print(n)
break

# Ответ: 11



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

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

🚩 Условие задачи:
Определите в прилагаемом файле последовательность идущих подряд символов наибольшей длины, в которой символ D встречается 1 раз и он находится в начале, а также содержится 50 цифр. В ответе запишите длину найдённой последовательности.


👩‍💻 Код решения:
f = open('24.txt').readline()
for i in '0123456789':
f = f.replace(i, '1')
f = f.split('D')
M = [len(x) for x in f if x.count('1') == 50]
print(max(M)+1)



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

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

🚩 Условие задачи:
Все пятибуквенные слова, составленные из букв В, Е, Н, Е, Р, А записаны в алфавитном порядке и пронумерованы.

Под каким нечетным номером в списке стоит последнее слово, которое не начинается с буквы Н и содержит ровно две буквы В?



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

k = 0
alph = sorted('ВЕНЕРА')
A = product(alph, repeat=5)
for i in A:
i = ''.join(i)
k += 1
if i[0] != 'Н' and i.count('В') == 2 and k % 2 != 0:
print(k)

# Ответ: 7607


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

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

🚩 Условие задачи:
Операнды арифметического выражения записаны в системе счисления с основанием 27: 2107x792_27 + 565х211_27

В записи чисел переменной х обозначена неизвестная цифра из алфавита 27-ричной системы счисления.

Определите наименьшее значение х, при котором значение данного арифметического выражения кратно 26.
Для найденного х вычислите частное от деления значения арифметического выражения на 26 и укажите его в ответе в десятичной системе счисления.


👩‍💻 Код решения:
for x in '0123456789ABCDEFGHIJKLMNOPQ':
a = int(f'2107{x}792', 27) + int(f'565{x}211', 27)
if a % 26 == 0:
print(a // 26)
break

#Ответ: 897607140


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

Информатика ЕГЭ | чатик itpy 🧑‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥95❤‍🔥5
This media is not supported in your browser
VIEW IN TELEGRAM
🔥2
🚩🚩 Разбор #ДВ2025 номера #ЕГЭ17 по информатике

🚩 Условие задачи:
В файле 17.txt содержится последовательность целых чисел от -100 000 до 100 000 включительно. Определите количество пар элементов последовательности, в которых только один элемент является двузначным, а сумма элементов больше максимального элемента последовательности, оканчивающегося на 19. В ответе запишите без пробела кол-во найденных пар чисел, затем максимальную из их сумм. Под парой подразумевается два идущих подряд элемента последовательности.



👩‍💻 Код решения:
f = open('17.txt').readline()
M = [int(i) for i in f]
max_19 = max(i for i in M if abs(i) % 100 == 19)

A = []
for i in range(len(M) - 1):
if (len(str(abs(M[i]))) == 2) + (len(str(abs(M[i+1]))) == 2) == 1:
if M[i] + M[i+1] > max_19:
A.append(M[i] + M[i+1])
print(len(A), max(A))


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

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