Задание 13. Информатика. ЕГЭ. Поляков-7007
- Просмотры: 332
- Изменено: 25 ноября 2024
(А. Минак) В терминологии сетей TCP/IP маской сети называют двоичное число, которое показывает, какая часть IP-адреса узла сети относится к адресу сети, а какая — к адресу узла в этой сети. Адрес сети получается в результате применения поразрядной конъюнкции к заданному адресу узла и маске сети. Сеть задана IP-адресом \(117.32.0.0\) и маской сети \(255.224.0.0\). Сколько в этой сети IP-адресов, которые имеют ровно два одинаковых по значению байта? IP-адрес сети и широковещательный адрес учитывать не следует.
Решение:
Маска сети \(255.224.0.0 = 11111111.11100000.00000000.00000000_2\). Для номера хоста в сети выделяется \(21\) младший бит.
Python
net = (117 << 24) + (32 << 16)
q = 0
for x in range(2**21):
ip = net + x
t = set()
t.add(ip & 255)
t.add((ip >> 8) & 255)
t.add((ip >> 16) & 255)
t.add((ip >> 24) & 255)
q += int(len(t) == 3)
print(q - 2)
Ответ: \(40638\)