ЕГЭ · ЗАДАНИЕ 13
IP-адреса и маски · №15326
Для сети 105.224.200.224 с маской 255.255.255.224 посчитайте все IP-адреса, у которых число единиц в 32-битной записи кратно 4. Рассматриваются все адреса сети, включая граничные; требуется количество адресов.
Источник задания
Сначала попробуй решить самостоятельно, затем открой разбор. Для автоматической проверки ответа включи JavaScript.
Показать решение по шагам
Разбор решения
Ответ: 10
Префикс /27 фиксирует 13 единиц. Остаётся 5 свободных бит. Если среди них j единиц, всего единиц 13+j; таких комбинаций C(5,j). Подходят j=3. Складываем соответствующие биномиальные коэффициенты: 10 = 10. Сетевой и широковещательный адрес не исключаем: считаются IP-адреса, а не только устройства.
from ipaddress import ip_network
from math import comb
net = ip_network('105.224.200.224/255.255.255.224')
h = 32 - net.prefixlen
c = int(net.network_address).bit_count()
answer = 0
for j in range(h + 1):
if (c + j) % 4 == 0:
answer += comb(h, j)
print(answer)