Информатика: ОГЭ и ЕГЭ

Тренировка ЕГЭ · задание 10 · количество адресов с условием

Задание 10 ЕГЭ: количество адресов с условием

Количество адресов сети с условием. Тема номера — ip-адрес и маска сети. Ниже — пример с ответом и решением; кнопкой под ним можно решить такую же задачу с другими числами, ответ проверится сразу.

Пример

В терминологии сетей TCP/IP маской сети называют двоичное число, которое показывает, какая часть IP-адреса узла сети относится к адресу сети, а какая – к адресу узла в этой сети. Адрес сети получается в результате применения поразрядной конъюнкции к заданному адресу узла и его маске.

Сеть задана IP-адресом 138.196.98.0 и маской сети 255.255.254.0. Сколько в этой сети IP-адресов, для которых сумма числовых значений четырёх октетов IP-адреса кратна 9?

В ответе укажите только число.

Ответ57

Решение

В маске 23 единицы, на номер узла остаётся 32 − 23 = 9 бит, в сети 29 = 512 адресов. Адрес сети 138.196.98.0.

Сумма октетов зависит от того, как свободные биты распределены по октетам, поэтому удобнее всего перебрать все адреса сети программой (или посчитать по октетам: для каждого октета — все его возможные значения, и считать, сколько способов дают каждый остаток суммы от деления на 9).

Ответ: 57.

import ipaddress

net = ipaddress.ip_network("138.196.98.0/255.255.254.0", strict=False)
count = 0
for a in net:
    if sum(map(int, str(a).split("."))) % 9 == 0:
        count += 1
print(count)

Решить такую задачу — новый вариант с проверкой

Задание 10 ЕГЭ: другие виды

Все задачи задания 10 вперемешку · разбор: как решать задание 10 · пробные варианты ЕГЭ