Задание 13. Информатика. ЕГЭ. Поляков-6906

Просмотры: 125
Изменено: 25 ноября 2024

(А. Минак) В терминологии сетей TCP/IP маской сети называют двоичное число, которое показывает, какая часть IP-адреса узла сети относится к адресу сети, а какая - к адресу узла в этой сети. Адрес сети получается в результате применения поразрядной конъюнкции к заданному адресу узла и маске сети. Сеть задана IP-адресом \(139.75.100.0\) и маской сети \(255.255.252.0\). Сколько в этой сети IP-адресов, у которых в последнем (правом) байте двоичной записи IP-адреса записано число Мерсенна, т. е. число вида \(2^n - 1\), где \(n\) – натуральное число.

Решение:

Третий байт маски сети \(252_{10} = 11111100_2\). С учётом того, что четвёртый байт маски нулевой, получаем, что для номера компьютера в сети при такой маске выделено \(10\) младших битов.

Python


net = (139 << 24) + (75 << 16) + (100 << 8)
q = 0
mersenn = [2**n - 1 for n in range(1, 9)]
for x in range(2**10):
    ip = net + x
    if ip & 255 in mersenn:
        q += 1
print(q)

Ответ: \(32\)