В терминологии сетей ТСР/IР маской сети называют двоичное число, которое показывает, какая часть IР-адреса узла сети относится к адресу сети, а какая — к адресу узла в этой сети. Адрес сети получается в результате применения поразрядной конъюнкции к заданному адресу узла и его маске.
Сеть задана IР-адресом 222.63.131.128 и сетевой маской 255.255.255.192. Сколько в этой сети IP-адресов, для которых количество единиц в двоичной записи IР-адреса кратно 5?
В ответе укажите только число.
Ответ:
Всероссийская апробации ЕГЭ 05.03.2024 – задание 13
Решение:
22.63.131.?
255.255.255.192
222.63.131.128
? = 10xx xxxx
192 = 1100 0000
128 = 1000 0000
|
1 2 3 4 5 6 7 8 |
from itertools import product k=0 c = bin(222)[2:].count('1')+bin(63)[2:].count('1')+bin(128)[2:].count('1') for i in product('10', repeat=6): a=''.join(i) if (c+a.count('1'))%5==0: k+= 1 print(k) |
ИЛИ
|
1 2 3 4 5 6 7 8 |
from ipaddress import * net = ip_network('222.63.131.128/255.255.255.192') k=0 for ip in net: ip_2 = bin(int(ip))[2:] if ip_2.count('1')%5==0: k+=1 print(k) |
Ответ: 15