This media is not supported in your browser
VIEW IN TELEGRAM
Автор задачи: (Л. Шастин)
Сеть, в которой содержится узел с IP-адресом 207.0.A.167, задана маской сети 255.255.255.192, где A - некоторое допустимое для записи IP-адреса число. Определите количество значений A, для которых для всех IP-адресов этой сети в двоичной записи IP-адреса суммарное количество нулей в левых двух байтах больше суммарного количества нулей в правых двух байтах.
В ответе укажите только число.
По условию задачи требуется перебрать значения допустимого для формирования IP-адреса числа A. Поскольку на каждое число A отводится 1 байт (8 бит), допустимые числа находятся в диапазоне от 0 до 255 (в двоичной системе счисления - от 00000000 до 11111111).
from ipaddress import *
cnt = 0
for A in range(0, 255+1):
net = ip_network(f'207.0.{A}.167/255.255.255.192', 0)
if all(f'{ip:b}'[:16].count('0') > f'{ip:b}'[16:].count('0') for ip in net):
cnt += 1
print(cnt)
# Ответ: 37
from ipaddress import *
Импорт всех функций из модуля ipaddress для работы с IP-адресами и сетями.
cnt = 0
Инициализация переменной cnt для подсчета количества IP-адресов, удовлетворяющих условиям.
for A in range(0, 255+1):
Цикл для перебора значения A от 0 до 255 включительно.
net = ip_network(f'207.0.{A}.167/255.255.255.192', 0)
Создание объекта сети net с динамически формируемым IP-адресом, маской подсети и коррекцией префикса.
if all(f'{ip:b}'[:16].count('0') > f'{ip:b}'[16:].count('0') for ip in net):
Проверка условия: количество нулей в первой половине бинарного представления IP-адреса больше чем во второй половине для всех IP-адресов в сети.
cnt += 1
Увеличиваем счетчик, если IP-адрес удовлетворяет условию.
print(cnt)
Вывод количества IP-адресов в созданных сетях, соответствующих условиям.
Информатика ЕГЭ | itpy
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Подготовили для вас методическое пособие по решению 13 номера! Сохраняйте все, что нужно знать о задании
В комментариях к этому посту закреплю файл в формате pdf
from ipaddress import *
net = ip_network('адрес сети/маска')
net.netmask
net.num_addresses
net.network_address
for mask in range(33):
net = ip_network(f'адрес узла/{mask}', 0)
for ip in net:
ip_b = f'{ip:b}'
Информатика ЕГЭ | itpy
Поддержать автора: boosty
Please open Telegram to view this post
VIEW IN TELEGRAM
Ребят, сел делать разборы на канал.
Какой номер разбираем следующим?
Какой номер разбираем следующим?
Anonymous Poll
32%
5️⃣
24%
8️⃣
45%
1️⃣4️⃣
Здесь я и другие авторы готовы ответить на все ваши вопросы, касающиеся подготовки к ЕГЭ. Будем рады видеть вас в нашем сообществе!
Поддержать автора донатом
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Списки - один из наиболее распространенных типов данных в Python. Они представляют собой упорядоченные коллекции объектов, которые могут быть любого типа.
Списки в Python создаются с использованием квадратных скобок []. Вот пример создания списка с различными типами данных:
my_list = [1, 2, "Python", 3.14, True]
print(my_list)
# Выведет: [1, 2, 'Python', 3.14, True]
Элементы списка нумеруются с нуля. Чтобы получить доступ к элементу списка, указывается его индекс в квадратных скобках:
print(my_list[2]) # Обращаемся к элементу с индексом 2
# Выведет: Python
Можно изменить значение элемента списка, просто присвоив новое значение элементу по индексу:
my_list[1] = 10
print(my_list)
# Выведет: [1, 10, 'Python', 3.14, True]
Списки поддерживают различные операции, такие как добавление элемента в конец списка (append), удаление элемента по значению (remove), удаление элемента по индексу (del), слияние списков (extend), и многие другие.
Информатика ЕГЭ | itpy
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Если у вас нет полного понимания того, как работает функция enumerate в Python, то давайте разберемся вместе. Метод enumerate() добавляет счетчик к элементам итерируемого объекта и возвращает объект типа enumerate. Этот объект содержит пары значений: индекс элемента и сам элемент из исходного списка.
Одним из главных преимуществ использования метода enumerate является возможность преобразования объектов типа enumerate в список или кортеж с помощью методов list() и tuple() соответственно. Это облегчает работу с индексами элементов списка и упрощает процесс перебора элементов в цикле.
Информатика ЕГЭ | itpy
Please open Telegram to view this post
VIEW IN TELEGRAM
Что вы думаете о крайнем посте про enumerate? Хотели бы вы видеть еще подобные Python посты?
Anonymous Poll
84%
✅ Почему бы и да 🙃
16%
❌ Можно летом, сейчас актуальнее разборы задач 🤔
This media is not supported in your browser
VIEW IN TELEGRAM
Уровень: Базовый
Значение выражения 4**34 + 5 * 4**22 + 4**13 + 2 * 4**9 + 82 записали в системе счисления с основанием 16. Сколько разных цифр встречается в этой записи?
Функция hex() является встроенной функцией в Python, которая используется для преобразования целого числа в строку, содержащую его шестнадцатеричное представление.
print(len(set(hex(4**34 + 5*4**22 + 4**13 + 2*4**9 + 82)[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
x = 4**34 + 5*4**22 + 4**13 + 2*4**9 + 82
В этой строке расчитывается значение переменной x с помощью сложных математических операций.
s = []
Создается пустой список s, который будет использоваться для хранения результатов вычислений.
while x > 0:
Запускается цикл while, который будет выполняться до тех пор, пока переменная x больше нуля.
s.append(x % 16)
Добавляется остаток от деления переменной x на 16 в список s. Это делается для перевода числа в шестнадцатеричную систему счисления.
x //= 16
Значение переменной x делится на 16 с использованием целочисленного деления, чтобы продолжить процесс перевода числа в шестнадцатеричную систему.
print(len(set(s)))
Выводится длина множества уникальных значений списка s, что позволяет определить количество различных цифр, используемых в представлении числа x в шестнадцатеричной системе.
Please open Telegram to view this post
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Новое обновление Телеграма позволяет создавать стикеры не выходя из приложения. Делаюсь маленьким туториалом, пользуйтесь
Информатика ЕГЭ | itpy👨💻
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Уровень: Базовый
Операнды арифметического выражения записаны в системах счисления с основаниями 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
alphabet = sorted('0123456789QWERTYUIOPASDFGHJKLZXCVBNM')
Создается отсортированный список alphabet, содержащий цифры от 0 до 9 и буквы английского алфавита в верхнем регистре.
R = []
Создается пустой список R, в который будут добавляться результаты, удовлетворяющие условию задачи.
for x in alphabet[:13]:
Запускается цикл for, перебирающий элементы alphabet до 13-го (не включительно) и присваивающий их переменной x.
for y in alphabet[:13]:
Запускается вложенный цикл for, перебирающий элементы alphabet до 13-го (не включительно) и присваивающий их переменной y.
A = int(f'8{x}78{y}', 13)
Формируется число A, которое получается из конкатенации строк, представляющих числа в строке, и преобразуется в десятичное число по основанию 13.
B = int(f'79{x}{y}7', 18)
Формируется число B, которое получается аналогично число A, но преобразуется в десятичное число по основанию 18.
if (A + B) % 9 == 0:
Проверяется условие, что сумма чисел A и B делится на 9 без остатка.
R.append((A + B) // 9)
Если условие выполняется, результат деления суммы A и B на 9 добавляется в список R.
print(min(R))
Выводится минимальное значение из списка R, которое является ответом на задачу.
Информатика ЕГЭ | itpy
Please open Telegram to view this post
VIEW IN TELEGRAM
Ребята, у меня к вам важный вопрос! Я не хочу продавать рекламу на канале, но хочу начать его монетизировать. Какие варианты для вас наиболее предпочтительны?
Anonymous Poll
76%
Подключить умную рекламу от Яндекса (реклама всяких скилбоксов)
52%
Продажа шпаргалок/курсов, запуск вебинаров
33%
Донат кнопка с эксклюзивным контентом на Бусти (Шпаргалки, Видео)
38%
Все таки старая (не)добрая реклама других ТГКаналов
12%
Свои, если таковые имеются, варианты в комментарии 👇
This media is not supported in your browser
VIEW IN TELEGRAM
Вычисление времени выполнения кода является важной задачей в программировании. Для этого можно использовать модуль time в Python, который позволяет измерять точное время выполнения программы.
В приведенном коде функция
my_function
намеренно оставлена без реальной задачи для удобства демонстрации. Мы начинаем измерение времени выполнения с помощью time.time()
до выполнения программы и сразу после ее окончания. После чего мы вычисляем разницу между этими значениями, чтобы определить общее время выполнения программы.Используя подобную методику, вы сможете наглядно увидеть, сколько времени требуется вашей программе на выполнение определенных участков кода. Этот подход особенно полезен при оптимизации производительности программы.
Информатика ЕГЭ | itpy
Тут отвечают на вопросы
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Автор задачи: (М. Попков)
Уровень: Средний
В системе счисления с основанием p выполняется равенство 24x9_p + yxy3_p = x4y0_p. Буквами x и y обозначены некоторые цифры из алфавита системы счисления с основанием p. Определите значение числа xyy_p и запишите это значение в десятичной системе счисления.
Систему счисления p мы перебираем от 10 до 36, чтобы удовлетворять условиям нашей задачи (внутри выражения есть число 9) и для использования функции int().
alphabet = sorted('0123456789QWERTYUIOPASDFGHJKLZXCVBNM')
for p in range(10, 36+1):
for x in alphabet[:p]:
for y in alphabet[:p]:
if int(f'24{x}9', p) + int(f'{y}{x}{y}3', p) == int(f'{x}4{y}0', p):
print(int(x+y+y, p))
# Ответ: 1688
alphabet = sorted('0123456789QWERTYUIOPASDFGHJKLZXCVBNM')
Создается отсортированный список alphabet, содержащий цифры от 0 до 9 и буквы английского алфавита в верхнем регистре.
for p in range(10, 36+1):
Запускается внешний цикл for, перебирающий значения от 10 до 36 (включительно) и присваивающий их переменной p.
for x in alphabet[:p]:
Запускается первый вложенный цикл for, который перебирает элементы alphabet до p-го индекса (не включительно) и присваивает их переменной x.
for y in alphabet[:p]:
Запускается второй вложенный цикл for, который также перебирает элементы alphabet до p-го индекса (не включительно) и присваивает их переменной y.
if int(f'24{x}9', p) + int(f'{y}{x}{y}3', p) == int(f'{x}4{y}0', p):
Проверяется условие, что сумма двух чисел, с основанием p, равна третьему числу.
print(int(x+y+y, p))
Если условие выполняется, выводится результат, в десятичное число с основанием p.
Понравился пост? Поддержи реакцией:
Тут отвечают на вопросы
Please open Telegram to view this post
VIEW IN TELEGRAM
20 числа будет готова шпора по 14 номеру. В связи с этим есть идея собраться (бесплатный вебинар) в воскресенье 21 числа и порешать эти задачки. Как вам идея?
Anonymous Poll
90%
✅ А давайте, было бы интересно присутствовать!
8%
🤔 Можно разобрать и другой номер..
2%
❌ Не очень интересная затея.
Media is too big
VIEW IN TELEGRAM
Мы уже делали подробный текстовый пост (прочитать можно здесь) о форматировании текста в Телеграме. Однако, учитывая, что в моем канале подписано много репетиторов, не помешает рассказывать о фишках Телеграма в формате коротких видео. Поэтому совместно с Lizzerd мы сделали для вас это короткое тестовое видео.
Если вам интересен такой контент, пожалуйста, поставьте лайк:
Информатика ЕГЭ | itpy
Тут отвечают на вопросы
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Автор задачи: (А. Игнатюк)
Уровень: Сложный
Дано арифметическое выражение 5xyC_16 + 8xx7_y. Определите, сколько различных значений может принимать выражение при всех возможных x и y.
Обратите внимание, что y является как переменной в 16-ой системе счисления, так и системой счисления в правом числе. Таким образом наш диапазон для y будет начинаться с 9 (так как в правом числе есть 8ка) и заканчиваться 16 (не включая).
ALPHABET = sorted('0123456789QWERTYUIOPASDFGHJKLZXCVBNM')
my_set = set()
for y in range(9, 16):
for x in ALPHABET[:y]:
A = int(f'5{x}{ALPHABET[y]}C', 16)
B = int(f'8{x}{x}7', y)
my_set.add(A+B)
print(len(my_set))
# Ответ: 84
ALPHABET = sorted('0123456789QWERTYUIOPASDFGHJKLZXCVBNM')
Создается отсортированный список ALPHABET, содержащий цифры от 0 до 9 и буквы английского алфавита в верхнем регистре.
my_set = set()
Создается пустое множество my_set, в которое будут добавляться уникальные результаты.
for y in range(9, 16):
Запускается внешний цикл for, перебирающий значения от 9 до 15 (не включительно) и присваивающий их переменной y.
for x in ALPHABET[:y]:
Запускается вложенный цикл for, перебирающий элементы из списка ALPHABET до y-го индекса (не включительно) и присваивающий их переменной x.
A = int(f'5{x}{ALPHABET[y]}C', 16)
Создается переменная A, в которую записывается число, представленное строкой с основанием 16, составленное из символов '5', x, ALPHABET[y] и 'C'.
B = int(f'8{x}{x}7', y)
Создается переменная B, в которую записывается число, представленное строкой с основанием y, составленное из символов '8', x, x и '7'.
my_set.add(A+B)
Сумма чисел A и B добавляется в множество my_set.
print(len(my_set))
Выводится длина множества my_set, которая представляет количество уникальных результатов.
Тут отвечают на вопросы
Please open Telegram to view this post
VIEW IN TELEGRAM
Ребят, если проводить вебинар в воскресенье, то давайте определимся со временем 🫰
(промежутки указаны по Москве*) (веб бесплатный по 14 номерам) (скорее всего будет доступен в записи)
(промежутки указаны по Москве*) (веб бесплатный по 14 номерам) (скорее всего будет доступен в записи)
Anonymous Poll
38%
12:00
41%
14:00
31%
16:00
44%
18:00
Делитесь фотографией вашего рабочего места, мне было бы интересно увидеть ваш сетап!
Возможно даже сделаю небольшой обзор (кружочек) своего рабочего места
Please open Telegram to view this post
VIEW IN TELEGRAM
🤩13 7 6 5
Пока я занимаюсь кронштейном предлагаю вам заняться этой задачкой 😅
Что выведет этот код?
Что выведет этот код?
Anonymous Poll
19%
Произойдет ошибка
42%
True
25%
False
14%
[-5, 1, 2, 3, 5, 6, 7]