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

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

Ши­ро­ко­ве­ща­тель­ным ад­ре­сом на­зы­ва­ет­ся спе­ци­а­ли­зи­ро­ван­ный адрес, в ко­то­ром на месте нулей в маске стоят еди­ни­цы.

Адрес сети и ши­ро­ко­ве­ща­тель­ный адрес не могут быть ис­поль­зо­ва­ны для ад­ре­са­ции се­те­вых устройств.

Сеть за­да­на IP-ад­ре­сом 134.80.0.0 и се­те­вой мас­кой 255.240.0.0.

Опре­де­ли­те наи­боль­шую сумму чис­ло­вых зна­че­ний ок­те­тов IP-⁠ад­ре­са устрой­ства (ком­пью­те­ра) из этой сети, у ко­то­ро­го ко­ли­че­ство еди­ниц и ко­ли­че­ство нулей в дво­ич­ной за­пи­си оди­на­ко­во.

В от­ве­те ука­жи­те толь­ко число.

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

Ре­ше­ние.

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

from ipaddress import *

 

net = ip_network('134.80.0.0/255.240.0.0')

otv = []

for ip in net:

ip_ad = bin(int(ip))[2:]

if ip_ad.count('1') == ip_ad.count('0'):

otv.append(sum([int(i) for i in str(ip).split('.')]))

print(max(otv))

 

Ответ: 718.


Аналоги к заданию № 89196: 89232 Все