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

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

Сколь­ко в этой сети IP-⁠ад­ре­сов, для ко­то­рых ко­ли­че­ство еди­ниц в дво­ич­ной за­пи­си IP-⁠ад­ре­са не крат­но 5?

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

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

Ре­ше­ние.

Вы­пи­шем адрес сети и маску в дво­ич­ной си­сте­ме счис­ле­ния:

112.160.0.010  =  0111 0000.  1010 0000.  0000 0000.  0000 00002,

255.240.0.010  =  1111 1111.  1111 0000.  0000 0000.  0000 00002.

Все IP-⁠ад­ре­са в сети будут иметь вид:

  0111 0000.  1010 xxxx.  xxxx xxxx.  xxxx xxxx2.

По­счи­та­ем ко­ли­че­ство ва­ри­ан­тов, для ко­то­рых ко­ли­че­ство еди­ниц в дво­ич­ной за­пи­си IP⁠-⁠⁠ад­ре­са не крат­но 5, учтя то, что в из­вест­ной части ад­ре­са пять еди­ниц.

 

При­ведём про­грам­му на языке Python.

import itertools

count = 0

s = itertools.product([0,1],repeat = 20)

for i in s:

if (5 + sum(i))%5 !=0:

count += 1

print(count)

 

Ответ: 832810.

 

При­ведём ре­ше­ние Ильи Ан­дри­а­но­ва на языке Python.

from ipaddress import *

net = ip_network(f'112.160.0.0/255.240.0.0', 0)

cnt = 0

for ip in net:

s = f'{ip:b}'

if s.count('1') % 5 != 0:

cnt += 1

print(cnt)

 

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

from ipaddress import ip_network

net = ip_network('112.160.0.0/255.240.0.0',0)

print(sum(bin(int(ip)).count('1')%5!=0 for ip in net))

 

 

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

from math import comb # Число со­че­та­ний

print(sum(comb(20,n) for n in range(21) if n%5 != 0))


Аналоги к заданию № 68514: 69891 69922 70540 Все

Источник: ЕГЭ—2024. Ос­нов­ная волна 08.06.2024. Даль­ний Во­сток