Задание 13

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

Теория

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

Например, Сеть задана IP-адресом 58.27.142.224 и сетевой маской 255.255.255.240. Важно, что в маске сети если встречается нулевой бит =0, то все биты правее тоже 0.

Адрес сети 58.27.142.224 00111010 00011011 10001110 11100000
Маска 255.255.255.240 11111111 11111111 11111111 11110000
IP 58.27.142.240-255 00111010 00011011 10001110 1110xxxx

 

В результате получаем возможные IP-адреса в сети - в данном примере их 16 = 24. Например задача: Сколько в этой сети IP-адресов, для которых количество единиц в двоичной записи IP-адреса кратно 2? Подсчитав количество единиц слева от хххх получили 15 единиц - нечетное, значит на месте хххх или одна (4 варианта) или три единицы (тоже 4 варианта), а всего 8.

Решение

Аналитический способ

Выполним поразрядную конъюнкцию IP-адреса сети 172.16.168.0 с маской сети 255.255.248.0. Два левых байта маски 255 - это 8 единиц - 11111111. Это значит что 172 & 255 = 172 и 16 & 255 = 16. Правый байт 0 & 0 = 0 - 8 нулей. Остается выполнить 168 & 248. 168 = 128 + 32 + 8 и в двоичной системе счисления будет 101010002. 248 = 255 - 7 = 111110002. Тогда 168 & 248 = 101010002 & 111110002 = 101010002 = 168.

172 = 168 + 4 = 101011002 - 4 единицы, в 16 - 1 единица, а в 168 - 3 единицы - всего 8 единиц. В третьем байте 3 значащих нуля, в четвертом 8 нулей, т.е. всего 211 возможных адресов. Самый быстрый способ - из этого количества вычесть те комбинации, когда сумма единиц 2 или 7 в последних 11 битах (8 + 2 =10 кратно 5, 8 + 7 = 15 - тоже кратно), так как мы ищем сумму всех единиц не кратную 5.

Решим две простейшие математические задачи:

Сколькими способами можно расставить сначала 2 единицы, а потом 7 единиц на 11 позициях, который соответствуют последним 11 нулям. (В ЕГЭ по математике (профиль) в 5-м задании может быть формула Бернулли!)

13 задание демо 25 количество комбинаций

Итого 211 - 55 - 330 = 1663.

Программа

1-й способ

13 задание демо 25 программа 1-й способ

2-й способ

13 задание демо 25 ipaddress модуль

Ответ

1663 (Время не более 5 минут)

Яндекс.Метрика