Информатика | Илья Андрианов | 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
Какую платформу для коротких видео вы предпочитаете использовать для «учебы»?
Anonymous Poll
59%
Shorts 📱
20%
Tik-Tok 📱
8%
Reels 📱
0%
VK Клипы 📱
2%
Дзен 📱
11%
Никакую, короткие видео 💩
8432
Последний вопрос на сегодня: Из всего потребляемого видеоконтента какой формат вам нравится больше всего? Всем спасибо за отклик 🙏
Anonymous Poll
53%
Короткие видео: 15-60 сек
51%
Полноразмерные видео: 10-15 минут
27%
Вебинары/стримы
46%
Курсы с чередованием: видео/практика
This media is not supported in your browser
VIEW IN TELEGRAM
👩‍💻 Аннотация типов в Python #tpy

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

У аннотаций следующий варианты синтаксиса:
1. имя_переменной : тип_данных
2. имя_переменной : тип_данных = значение
3. def my_function(arg: тип_данных) -> тип_возвращаемого_значения


Хотя Python является динамически типизированным языком, аннотации типов могут быть полезными при разработке больших проектов или при работе в команде. Кроме того, аннотации типов могут быть использованы сторонними инструментами для статического анализа кода и автоматической проверки типов данных.

Информатика ЕГЭ | itpy 👨‍💻
Тут отвечают на вопросы
Please open Telegram to view this post
VIEW IN TELEGRAM
8332
2⃣3⃣ Шпаргалка ЕГЭ | Задание #ЕГЭ23 #шпора

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

Базовый шаблон решения задачи:
def F(a, b):
"""
Args:
a - начало
b - конец перебора
Returns:
сумму траекторий от a до b
"""

if a > b or a == 11 or a == 12:
return 0
elif a == b:
return 1
else:
return F(a + 1, b) + F(a * 2, b)

print(F(2, 10) * F(10, 40))


Не понимаю, почему никто (из студентов) не использует такой вариант шаблона, он короче и проще:
def F(a, b):
if a >= b or a == 11 or a == 12:
return a == b
return F(a + 1, b) + F(a * 2, b)

print(F(2, 10) * F(10, 40))


🚩if a >= b: return a==b
Если мы попали из начала в конец или превысили его, то вернем логическое тождество, которое возвращает True или False (1 и 0 для нашей суммы программ).


🚩 print(F(2, 10) * F(10, 40))
Гарантируем, что число 10 содержится в траектории


🚩 if a >= b or a == 11 or a == 12
Проверяем, что числа 11 и 12 не содержатся в траектории.


Информатика ЕГЭ | itpy 🧑‍💻
Поддержать автора: boosty 💵
Please open Telegram to view this post
VIEW IN TELEGRAM
8542
Какой номер разбираем дальше? 🤔
Anonymous Poll
41%
🚩
24%
🚩🚩
34%
🚩🚩
Пришла интересная идея! А что, если к интересным задачам добавлять «голосовые сообщения» с таймкодами при необходимости?

Через голосовое сообщение я смогу быстрее и понятнее объяснить суть задачи. Как вы думаете, будет ли это уместно?
Anonymous Poll
75%
✔️ Да, звучит интересно
12%
Текстового разбора хватает
14%
⁉️ Затрудняюсь ответить
5
🔤🔤🔤🔤🔤🔤🔤🔤🔤 🖥

Самое полезное в закрепах 💵
Please open Telegram to view this post
VIEW IN TELEGRAM
Шпаргалка для 🚩🚩 номера #useful

Как правильно разбить столбец зависимых процессов для корректоного составления таблицы.

Информатика ЕГЭ | itpy
👨‍💻
Тут отвечают на вопросы
Please open Telegram to view this post
VIEW IN TELEGRAM
11643
This media is not supported in your browser
VIEW IN TELEGRAM
🚩🚩 Разбор номера 786 #kege по информатике #ЕГЭ24
Автор: (Е.Джобс)
Уровень:
Средний

🚩 Условие задачи:
Сколько пар символов в строке являются симметричными? Симметричной парой называют такие два символа, которые расположены на одинаковом удалении от концов строки.


👩‍💻 Код решения:
s = open('24.txt').readline()
cnt = 0
for i in range(len(s) // 2):
if s[i] == s[-1-i]:
print(s[i], s[-1-i])
cnt += 1
print(cnt)

# Ответ: 19100


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

1⃣ s = open('24.txt').readline()
Чтение строки из файла "24.txt" и помещение этой строки в переменную s.


2⃣ cnt = 0
Инициализация переменной cnt для подсчета количества пар символов, которые совпадают в строке.


3⃣ for i in range(len(s) // 2):
Цикл for, который проходит по половине длины строки s. Это делается для сравнения символов симметрично относительно центра строки.


4⃣ if s[i] == s[-1-i]:
Проверка условия: если символ на позиции i равен символу на позиции -1-i (то есть симметрично расположенные символы равны).


5⃣ print(s[i], s[-1-i])
Вывод на экран пары символов, которые совпадают симметрично.


6⃣ cnt += 1
Увеличение счетчика cnt на 1 при каждом совпадении пары символов.


7⃣ print(cnt)
Вывод общего количества пар совпадающих символов в строке.


В голосовом оставлю мини-комментарий к коду решения этой программы 👇👇👇

Информатика ЕГЭ | itpy 👨‍💻
Тут отвечают на вопросы
Please open Telegram to view this post
VIEW IN TELEGRAM
8551
📱Комментирую код решения задачи:

0:06 - Про диапазон range

0:22 - Про рассматриваемые пары
Please open Telegram to view this post
VIEW IN TELEGRAM
10
Один из подписчиков спросил меня, стоит ли решать авторские варианты, если до экзамена осталось немного времени. Мой ответ: конечно, стоит, но выборочно! Я настоятельно рекомендую всем, кто планирует набрать более 80 баллов, порешать крайний вариант от Лёни Шастина на сайте kompege.ru #useful

Ссылка на вариант: Шастин вариант 6⃣

Так же оставлю тут ссылку на полный разбор от автора: ссылка на YouTube 📱

Особенно хочется отметить номера:
🚩 - забавное условие с "поменять местами элементы"
🚩 - ситуация с фигурами может запутать
🚩 - лайтовый, но просто кайфовый прототип
🚩 - чётность всех соседних различна
🚩🚩 - интересное условие с пропущенным числом в маске
🚩🚩 - интересная задача с p-ой системой счисления
🚩🚩 - проверить сумму цифр строки у элементов тройки
🚩🚩 - классная задача с угловыми клетками
🚩🚩 - хардовый уровень на подумать


Информатика ЕГЭ | itpy 👨‍💻
Тут отвечают на вопросы
Please open Telegram to view this post
VIEW IN TELEGRAM
1166
👋 Доброе утро, друзья! Меня заинтересовал вопрос о том, кто составляет нашу аудиторию на канале. Проведение опроса поможет лучше понять наших подписчиков, их интересы и потребности. Буду признателен, если вы уделите время на прохождение опроса 🤗
Anonymous Poll
2%
Я учусь в школе < 9 класса
2%
Учусь в 9 классе
14%
Учусь в 10 классе
59%
Учусь в 11 классе
8%
Студент 1-4 курс
9%
Репетитор/Педагог
2%
Родитель
4%
Просто неравнодушный
This media is not supported in your browser
VIEW IN TELEGRAM
🚩🚩 Разбор номера 5091 #polyakov по информатике #ЕГЭ23
Автор: А. Брейк
Уровень:
Сложный

🚩 Условие задачи:
1. Вычесть 1
2. Вычесть 2
3. Извлечь корень

Третья команда — извлекает из числа квадратный корень, если число является квадратом любого числа.

Сколько различных результатов можно получить из числа 113 в ходе программы, содержащей 17 команд?


🚩 Теоретическая справка:
Обратите внимание, что просят найти кол-во команд!


👩‍💻 Код решения:
from functools import *
my_set = set()

@lru_cache(None)
def F(x, c):
if c == 17:
my_set.add(x)
return 0
if x > 0:
if round(x**0.5) == x**0.5:
return F(x - 1, c + 1) + F(x - 2, c + 1) + F(x ** 0.5, c + 1)
return F(x-1, c+1) + F(x-2, c+1)


F(113, 0)
print(len(my_set))

# Ответ: 6537515


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

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


2⃣ my_set = set()
Создание пустого множества my_set, которое будет использоваться для хранения уникальных значений.


3⃣ @lru_cache(None)
Декоратор для кеширования результатов выполнения функции. None означает, что будет использоваться неограниченный кеш.


4⃣ def F(x, c):
Объявление функции F, которая принимает два аргумента: x и c.


5⃣ if c == 17:
Проверка условия: если c равно 17.


6⃣ my_set.add(x)
Добавление значения x в множество my_set.


7⃣ return 0
Конец выполнения функции для определенного значения c.


8⃣ if x > 0:
Проверка условия: если x больше нуля.


0⃣ if round(x**0.5) == x**0.5:
Проверка условия: если квадратный корень числа x является целым числом.


🔟 return F(x - 1, c + 1) + F(x - 2, c + 1) + F(x ** 0.5, c + 1)
Рекурсивный вызов функции с различными параметрами в зависимости от условий.


1⃣1⃣ return F(x-1, c+1) + F(x-2, c+1)
Рекурсивный вызов функции F с измененными параметрами.

1⃣2⃣ F(113, 0)
Вызов функции F с начальными значениями.


1⃣3⃣ print(len(my_set))
Вывод количества уникальных элементов в множестве.


Аудио мини-комментарий к коду решения оставлю в комментариях 👇👇👇

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

Информатика ЕГЭ | чатик itpy 🧑‍💻
Тут отвечают на вопросы
Please open Telegram to view this post
VIEW IN TELEGRAM
9643
Шпаргалка для 🚩 номера #useful

Как пользоваться встроенной функцией ВПР (VLOOKUP) в Excel. Очень полезная функция, так как она пригодится и в 22 номере ☝️

Информатика ЕГЭ | itpy
👨‍💻
Тут отвечают на вопросы
Please open Telegram to view this post
VIEW IN TELEGRAM
1487
This media is not supported in your browser
VIEW IN TELEGRAM
🚩🚩 Разбор номера 11791 #kege по информатике #ЕГЭ13
Автор: М. Ишимов
Уровень: Средний


🚩 Условие задачи:
Сеть, в которой содержится узел с IP-адресом 246.51.128.202, задана маской сети 255.255.A.0, где A - некоторое допустимое для записи маски число.

Определите минимальное значение A, для которого для всех IP-адресов этой сети в двоичной записи IP-адреса количество нулей в левых двух байтах не более количества нулей в правых двух байтах.


🚩 Теоретическая справка:
Аудио с пояснением к коду решения оставлю в комментариях.


👩‍💻 Код решения:
from ipaddress import *
for A in [0, 128, 192, 224, 240, 248, 252, 254, 255]:
net = ip_network(f'246.51.128.202/255.255.{A}.0', 0)
if all(f'{ip:b}'[:16].count('0') <= f'{ip:b}'[16:].count('0') for ip in net):
print(A)
break

# Ответ: 254


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

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


2⃣ for A in [0, 128, 192, 224, 240, 248, 252, 254, 255]:
Цикл for перебирает значения из списка [0, 128, 192, 224, 240, 248, 252, 254, 255], присваивая каждое значение переменной A.


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


4⃣ if all(f'{ip:b}'[:16].count('0') <= f'{ip:b}'[16:].count('0') for ip in net):
Выполняется условие, в котором проверяется, что для каждого IP-адреса в сети net количество битов, равных 0, в первых 16 битах меньше или равно количеству битов, равных 0, в оставшихся битах.


5⃣ print(A)
Если условие выполняется, то выводится значение переменной A.


6⃣ break
Выполняется прерывание цикла, так что после вывода значения переменной A программа завершает выполнение.


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

Информатика ЕГЭ | чатик itpy 🧑‍💻
Тут отвечают на вопросы
Please open Telegram to view this post
VIEW IN TELEGRAM
7551