Разбор задания 13 ЕГЭ по информатике
Теория
IP-адрес — уникальный адрес устройства в сети, состоит из 4 чисел (0-255).
Маска сети определяет разделение адреса на сеть и узел.
Адрес сети получается применением поразрядной конъюнкции к IP-адресу и маске.
Решение через Python
Способ 1: Использование модуля ipaddress
import ipaddress # Создаем сеть network = ipaddress.ip_network('122.159.136.144/255.255.255.248') # Счетчик подходящих адресов cnt = 0 # Перебираем все адреса в сети for ip in network: # Проверяем условие (количество единиц не кратно 4) if bin(ip).count('1') % 4 != 0: cnt += 1 print(cnt)
Пояснение кода:
- Импортируем модуль для работы с IP-адресами
- Создаем объект сети с заданным IP и маской
- Инициализируем счетчик
- Перебираем все адреса в сети
- Проверяем условие через двоичную запись
- Выводим результат
Решение через Excel
Способ 2: Использование электронной таблицы
- В ячейку A1 вводим IP-адрес (например, 122.159.136.144)
- В ячейку B1 вводим маску (255.255.255.248)
- Разбиваем адреса на байты
- Переводим в двоичный вид
- Применяем поразрядную конъюнкцию
- Считаем количество единиц
Формулы для Excel:
- Перевод в двоичный вид:
=ДЕС.В.ДВ(число) - Перевод в десятичный вид: =дв.в.дес (число)
- Проверка условия:
=ЕСЛИ(ОСТАТ(количество_единиц;4)<>0;1;0)
Шаги решения:
- Создаем таблицу с IP-адресами
- Применяем формулы для перевода в двоичный вид
- Считаем количество единиц
- Фильтруем адреса по условию
- Считаем подходящие адреса
Важные моменты
- В Python используем модуль ipaddress для удобной работы с IP
- В Excel важно правильно разделить адреса на байты
- Всегда проверяйте условие задачи (кратность, диапазон и т.д.)
- Помните, что адрес сети и широковещательный адрес обычно не учитываются
Оба способа дают одинаковый результат, выбор зависит от ваших предпочтений и условий задачи. Python быстрее и точнее, Excel более нагляден для визуального анализа.