Задания
Версия для печати и копирования в MS Word
Тип 13 № 76116
i

В тер­ми­но­ло­гии сетей TCP/IP маска сети  — это дво­ич­ное число, мень­шее 232; в маске сна­ча­ла (в стар­ших раз­ря­дах) стоят еди­ни­цы, а затем с не­ко­то­ро­го места нули. Маска опре­де­ля­ет, какая часть IP-⁠ад­ре­са узла сети от­но­сит­ся к ад­ре­су сети, а какая  — к ад­ре­су са­мо­го узла в этой сети.

Обыч­но маска за­пи­сы­ва­ет­ся по тем же пра­ви­лам, что и IP-⁠адрес  — в виде четырёх байт, причём каж­дый байт за­пи­сы­ва­ет­ся в виде де­ся­тич­но­го числа. Адрес сети по­лу­ча­ет­ся в ре­зуль­та­те при­ме­не­ния по­раз­ряд­ной конъ­юнк­ции к за­дан­но­му IP-⁠ад­ре­су узла и маске.

На­при­мер, если IP-⁠адрес узла равен 131.32.255.131, а маска равна 255.255.240.0, то адрес сети равен 131.32.240.0.

Сеть за­да­на IP-⁠ад­ре­сом  205.182.128.0 и мас­кой сети 255.255.192.0.

Сколь­ко в этой сети IP-⁠ад­ре­сов, в ко­то­рых оди­на­ко­вое ко­ли­че­ство нулей и еди­ниц в тре­тьем байте ад­ре­са?

Спрятать решение

Ре­ше­ние.

При­ведём ана­ли­ти­че­ское ре­ше­ние Юрия Кра­силь­ни­ко­ва.

Тре­тий байт ад­ре­са сети (128) в дво­ич­ной за­пи­си - 10000000

Тре­тий байт маски (192) - 11000000

Сле­до­ва­тель­но, тре­тий байт IP-ад­ре­са дол­жен иметь вид 10xxxxxx, каж­дый x - про­из­воль­ный бит (или 0, или 1)

Чтобы ко­ли­че­ство нулей и еди­ниц в тре­тьем байте было оди­на­ко­вым, то в "xxxxxx" долж­ны со­дер­жать­ся 3 нуля и 3 еди­ни­цы.

Ко­ли­че­ство 6-раз­ряд­ных чисел, в ко­то­рых 3 еди­ни­цы - это число со­че­та­ний из 6 по 3, т. е. 20.

При этом чет­вер­тый байт может при­ни­мать все воз­мож­ные зна­че­ния, их 28=256.

Итого число IP-ад­ре­сов равно 20 · 256=5120.

 

 

При­ведём ре­ше­ние на языке Python.

from itertools import product as p

print(sum(1 for s in p('01', repeat=6) if (v:='10'+''.join(s)) and v.count('1') == 4) * 2**8)

 

Ответ: 5120.

Источник: Проб­ный ЕГЭ Санкт-Пе­тер­бург, 20.02.2025. Ва­ри­ант 1