Информатика ЕГЭ | Илья Андрианов | itpy 🧑‍💻
1.14K subscribers
276 photos
23 videos
19 files
666 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
🚩 Разбор номера 63025 #reshu по информатике #ЕГЭ9

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

👩‍💻 Код решения:
count = 0
for s in open('9.txt'):
M = sorted([int(x) for x in s.split()])
if len(M) != len(set(M)): # if M[-1] != M[-2]:
if M.count(M[-1]) == 1:
copied = [x for x in M if M.count(x) > 1]
if sum(copied) > M[-1]:
count += 1
print(count)


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

Информатика ЕГЭ | чатик itpy 🧑‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
7651
This media is not supported in your browser
VIEW IN TELEGRAM
🚩🚩 Разбор номера 34537 #reshu по информатике #ЕГЭ15

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

Заметили, что задачи 15 номера с отрезками вызывают сложности у студентов. Однако, РЕШУ ЕГЭ не рекомендует использовать метод перебора для их решения, что является категорически неверным. Мы представляем универсальный вариант решения, который может быть полезен.😼

В рамках обсуждения также рассмотрим задачу, в которой используется функция all().

👩‍💻 Код решения:
def F(x, a1, a2):
P = 10 <= x <= 15
Q = 10 <= x <= 20
R = 5 <= x <= 15
A = a1 <= x <= a2
return (A <= P) == (Q <= R)


R = []
M = [x / 4 for x in range(5 * 4, 20 * 4)]
for a1 in M:
for a2 in M:
if all(F(x, a1, a2) for x in M):
R.append(a2 - a1)

print(min(R))


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

Информатика ЕГЭ | чатик itpy 🧑‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
16👍10444
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
🚩 Разбор номера 35981 #reshu по информатике #ЕГЭ7

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

Да 7 номер ЕГЭ принято считать полностью письменной задачей, но мы предлагаем воспользоваться Питоном в качестве калькулятор и решить интересную задачу с Решу ЕГЭ.

👩‍💻 Код решения:
I = (16 * 2 ** 23) / 32  
I = I - (128 * 2**13)
I = I * 8
i = I / (2048 * 1536)
Colors = 2 ** i
print(f"Цветов использовано в палитре: {Colors}")


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

Информатика ЕГЭ | чатик itpy 🧑‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
1198👍4
This media is not supported in your browser
VIEW IN TELEGRAM
🚩🚩 Разбор номера 59794 #reshu по информатике #ЕГЭ24

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

👩‍💻 Код решения:
s = open('24.txt').readline()
s = s.split('U')
mini = 999999
for i in range(len(s)-108):
r = 'U'.join(s[i:i+109])
mini = min(mini, len(r))
print(mini + 2)


Файлы к заданию: 24.txt

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

Информатика ЕГЭ | чатик itpy 🧑‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
10105🤩2
This media is not supported in your browser
VIEW IN TELEGRAM
🚩🚩 Разбор номера 60266 #reshu по информатике #ЕГЭ24

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

👩‍💻 Код решения:
s = open('24.txt').readline().split('T')
maxi = 0
for i in range(len(s)-100):
r = 'T'.join(s[i:i+101])
maxi = max(maxi, len(r))
print(maxi)


Файлы к заданию: 24.txt

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

Информатика ЕГЭ | чатик itpy 🧑‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
776👏2
👩‍💻 Рисование и управление экраном в Turtle: down(), up(), dot(), screensize(), tracer(), done() #tpy

🚩 Функция down() опускает перо черепахи, позволяя ей рисовать на экране.
import turtle as t
t.down()
t.forward(100)
t.done()


🚩 Функция up() поднимает перо черепахи, останавливая рисование.
import turtle as t
t.down()
t.forward(100)
t.up()
t.forward(50)
t.done()


🚩 Функция dot(size, color) рисует точку заданного размера (size) и цвета (color) в текущей позиции черепахи.
import turtle as t
t.dot(10, "red")
t.done()


🚩 Функция screensize(width, height) устанавливает размеры экрана в пикселях. Это определяет размер доступной области для рисования.
import turtle as t
t.screensize(800, 600)
t.done()


🚩 Функция tracer(n, delay) управляет скоростью отрисовки черепахи. n задает количество шагов отрисовки, а delay - задержку между шагами.
import turtle as t
t.tracer(3, 100)
t.done()


🚩 Функция done() ожидает закрытия окна черепахи перед окончанием программы.
import turtle as t
t.done()


Эти функции помогают управлять рисованием и настройками экрана при работе с библиотекой Turtle в Python.

Информатика ЕГЭ | itpy
👨‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👏886
This media is not supported in your browser
VIEW IN TELEGRAM
🚩🚩 Разбор номера 5911 #reshu по информатике #ЕГЭ13

🚩 Условие задачи:
По заданным IP-адресу узла и маске определите адрес сети.
IP-адрес узла: 129.131.130.64
Маска: 255.255.192.0


🚩 Теоретическая справка:
Простейшая задача 13 номера с которой стоит начать изучение этих задач. Главная формула:
Адрес сети = Адрес узла & Маска сети
где & - это операция побитовой конъюнкции.


👩‍💻 Код решения:
from ipaddress import *  
net = ip_network('129.131.130.64/255.255.192.0', 0)
print(net) # 129.131.128.0/18


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

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


2⃣ net = ip_network('129.131.130.64/255.255.192.0', 0)
Создание объекта сети net с заданным IP-адресом и маской подсети, причем последний аргумент указывает на коррекцию префикса.


3⃣ print(net)
Вывод объекта сети net.


4⃣ # 129.131.128.0/18
Комментарий, указывающий на правильность адресации объекта сети: IP-адрес 129.131.128.0 с маской /18.


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

Информатика ЕГЭ | чатик itpy 🧑‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
8654
This media is not supported in your browser
VIEW IN TELEGRAM
🚩🚩 Разбор номера 7696 #reshu по информатике #ЕГЭ13

🚩 Условие задачи:
Для узла с IP-адресом 224.128.112.142 адрес сети равен 224.128.96.0.
Чему равен третий слева байт маски? Ответ запишите в виде десятичного числа.


🚩 Теоретическая справка:
Маска сети имеет длину 32 бита и вид 1111..000 (сначала единицы, потом нули). Поэтому мы можем перебрать ее значения через for mask in range(32+1):


👩‍💻 Код решения:
from ipaddress import *
for mask in range(32+1):
net = ip_network(f'224.128.112.142/{mask}', 0)
if str(net) == f'224.128.96.0/{mask}':
print(str(net.netmask).split('.')[2])


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

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


2⃣ Цикл for mask in range(32+1):
Для перебора возможных значений маски сети от 0 до 32 (включительно).


3⃣ net = ip_network(f'224.128.112.142/{mask}', 0)
Создание объекта сети net с заданным IP-адресом и переменной маской подсети, где последний аргумент указывает на коррекцию префикса.


4⃣ if str(net) == f'224.128.96.0/{mask}':
Условие проверки соответствия адреса сети определенному значению.


5⃣print(str(net.netmask).split('.')[2])
Вывод третьего октета маски подсети из объекта сети net, если условие выполнено.


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

Информатика ЕГЭ | чатик itpy 🧑‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
7643
This media is not supported in your browser
VIEW IN TELEGRAM
🚩🚩 Разбор номера 39243 #reshu по информатике #ЕГЭ14
Уровень: Базовый

🚩 Условие задачи:
Значение выражения 4**34 + 5 * 4**22 + 4**13 + 2 * 4**9 + 82 записали в системе счисления с основанием 16. Сколько разных цифр встречается в этой записи?


🚩 Теоретическая справка:
Функция hex() является встроенной функцией в Python, которая используется для преобразования целого числа в строку, содержащую его шестнадцатеричное представление.


👩‍💻 Код решения 1:
print(len(set(hex(4**34 + 5*4**22 + 4**13 + 2*4**9 + 82)[2:])))


👩‍💻 Код решения 2:
x = 4**34 + 5*4**22 + 4**13 + 2*4**9 + 82
s = []
while x > 0:
s.append(x % 16)
x //= 16
print(len(set(s)))

# Ответ: 6


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

1⃣ x = 4**34 + 5*4**22 + 4**13 + 2*4**9 + 82
В этой строке расчитывается значение переменной x с помощью сложных математических операций.


2⃣ s = []
Создается пустой список s, который будет использоваться для хранения результатов вычислений.


3⃣ while x > 0:
Запускается цикл while, который будет выполняться до тех пор, пока переменная x больше нуля.


4⃣ s.append(x % 16)
Добавляется остаток от деления переменной x на 16 в список s. Это делается для перевода числа в шестнадцатеричную систему счисления.

5⃣ x //= 16
Значение переменной x делится на 16 с использованием целочисленного деления, чтобы продолжить процесс перевода числа в шестнадцатеричную систему.


6⃣ print(len(set(s)))
Выводится длина множества уникальных значений списка s, что позволяет определить количество различных цифр, используемых в представлении числа x в шестнадцатеричной системе.


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

Информатика ЕГЭ | чатик itpy 🧑‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
854
This media is not supported in your browser
VIEW IN TELEGRAM
🚩🚩 Разбор номера 48385 #reshu по информатике #14
Уровень: Базовый

🚩 Условие задачи:
Операнды арифметического выражения записаны в системах счисления с основаниями 13 и 18:

8x78y_13 + 79xy7_18

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


🚩 Теоретическая справка:
Строчку alphbet можно записать иначе:
from string import *
alphabet = digits + ascii_uppercase


👩‍💻 Код решения:
alphabet = sorted('0123456789QWERTYUIOPASDFGHJKLZXCVBNM')
R = []
for x in alphabet[:13]:
for y in alphabet[:13]:
A = int(f'8{x}78{y}', 13)
B = int(f'79{x}{y}7', 18)
if (A + B) % 9 == 0:
R.append((A + B) // 9)
print(min(R))

# Ответ: 113024


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

1⃣ alphabet = sorted('0123456789QWERTYUIOPASDFGHJKLZXCVBNM')
Создается отсортированный список alphabet, содержащий цифры от 0 до 9 и буквы английского алфавита в верхнем регистре.


2⃣ R = []
Создается пустой список R, в который будут добавляться результаты, удовлетворяющие условию задачи.


3⃣ for x in alphabet[:13]:
Запускается цикл for, перебирающий элементы alphabet до 13-го (не включительно) и присваивающий их переменной x.


4⃣ for y in alphabet[:13]:
Запускается вложенный цикл for, перебирающий элементы alphabet до 13-го (не включительно) и присваивающий их переменной y.


5⃣ A = int(f'8{x}78{y}', 13)
Формируется число A, которое получается из конкатенации строк, представляющих числа в строке, и преобразуется в десятичное число по основанию 13.


6⃣ B = int(f'79{x}{y}7', 18)
Формируется число B, которое получается аналогично число A, но преобразуется в десятичное число по основанию 18.


7⃣ if (A + B) % 9 == 0:
Проверяется условие, что сумма чисел A и B делится на 9 без остатка.


8⃣ R.append((A + B) // 9)
Если условие выполняется, результат деления суммы A и B на 9 добавляется в список R.


0⃣ print(min(R))
Выводится минимальное значение из списка R, которое является ответом на задачу.


Информатика ЕГЭ | itpy 👨‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
9665