Главная / ЕГЭ Информатика / Задание №13 / ID 31881
ID 31881 ЕГЭ Информатика Линия №13 СдамГИА ID: 60255 Анализ информационных моделей
✈️ TG ВК Следующая ⏭️
В терминологии TCP/⁠IP маской сети называют двоичное число, которое показывает, какая часть IP-⁠адреса узла сети относится к адресу сети, а какая  — к адресу узла в этой сети. Адрес сети получается в результате применения поразрядной конъюнкции к заданному адресу узла и маске сети. Сеть задана IP-⁠адресом 192.168.32.160 и маской сети 255.255.255.240. Сколько в этой сети IP-⁠адресов, для которых сумма единиц в двоичной записи IP-⁠адреса чётна?
В ответе укажите только число.
💡 Пошаговый разбор и решение:
1.  Запишем числа маски сети и адреса сети в двоичной системе счисления:

25510  −  111111112,
24010  −  111100002,
19210  −  110000002,

16810  −  101010002,
3210  −  001000002,
16010  −  101000002.

2.  Адрес сети получается в результате поразрядной конъюнкции чисел маски и чисел адреса узла (в двоичном коде). Поскольку конъюнкция 0 с чем-либо всегда равна 0, то на тех местах, где числа маски равны 0, в адресе узла стоит 0. Аналогично, там, где числа маски равны 255, стоит само число, так как конъюнкция 1 с любым числом равна этому числу.
3.  Адрес сети 192.168.32.160  . В двоичном представлении адреса 8 единиц, сумма единиц чётна. Маска сети оканчивается 4 нулями. Следовательно, 16 вариантов адреса, из которых половина чётная. В сети IP-⁠адресов, для которых сумма единиц в двоичной записи IP-⁠адреса чётна ровно 8.

Ответ: 8.

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

from ipaddress import ip_network # Стандартная библиотека

net = ip_network("192.168.32.160/255.255.255.240", strict=False) # Создаем объект сети "ip/маска"

bin_addresses = [f"{address:b}" for address in net] # Все адреса сети переводим в двоичный вид

counter = 0
for address in bin_addresses:
if address.count("1") % 2 == 0: # Считаем сколько адресов подходят под условие
counter += 1

print(counter)

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

from ipaddress import ip_network
net = ip_network('192.168.32.160/28', 0)
count = sum(bin(int(ip)).count('1') % 2 == 0 for ip in net)
print(count)

Приведём решение Сергея Донец на языке PascalABC.NET.

uses School;
begin
var net:=new CalcIP('192.168.32.160','255.255.255.240');
net.GenAddrBin.Count(t->t.CountOf('1').IsEven).Print;//8
end.
Правильный ответ: 8
📚 Похожие разобранные задания по предмету:
ID 29736 • Задание №3
Даны фрагменты двух таблиц из базы данных. Каждая строка таблицы 2 содержит информацию о ребёнке и об одном из...
Смотреть разбор ↗
ID 32610 • Задание №16
Функции F(n) и G(n), где n  — натуральное число, заданы следующими соотношениями: F(n)  =  n, если n > 1 000 0...
Смотреть разбор ↗
🔗 Другие задания линии №13 по предмету Информатика:
ID 31876 Маской подсети называется 32-⁠разрядное двоичное число, которое определяет, какая часть IP-⁠адр... ID 31877 В терминологии сетей TCP/⁠IP маской подсети называется 32-⁠разрядное двоичное число, определяющ... ID 31878 В терминологии сетей TCP/⁠IP маской подсети называется 32-⁠разрядное двоичное число, определяющ... ID 31879 Если маска подсети 255.255.252.0 и IP-⁠адрес компьютера в сети 226.185.90.162, то номер компьют... ID 31880 В терминологии сетей TCP/⁠IP маской сети называется двоичное число, определяющее, какая часть I...
← Предыдущее задание 📚 Все задания по предмету Следующее задание →