Найти в Дзене

Разбор номера 10783 по информатике #13

Оглавление

Условие: № 10783 (Уровень: Средний)
Статья подготовлена командой itpy
Полный разбор задачи в Telegram

🚩 Условие задачи:

Два узла, находящиеся в одной сети, имеют IP-адреса 121.171.5.70 и 121.171.5.107.
Укажите наименьшее возможное количество адресов в этой сети.

👩‍💻 Код решения:

from ipaddress import *
R = []
for mask in range(32+1):
net1 = ip_network(f'121.171.5.70/{mask}', 0)
net2 = ip_network(f'121.171.5.107/{mask}', 0)
if net1 == net2:
R.append(net1.num_addresses)
print(min(R))

👩‍💻 Комментарии к коду:

1. from ipaddress import *
Импорт всех функций из модуля ipaddress для работы с сетевыми адресами.

2. R = []
Создание пустого списка R, куда будут добавляться результаты.

3. Цикл for mask in range(32+1):
Для перебора возможных значений маски сети от 0 до 32 (включительно).

4. net1 = ip_network(f'121.171.5.70/{mask}', 0)
Создание объекта сети net1 с заданным IP-адресом и переменной маской подсети, с коррекцией префикса.

5. net2 = ip_network(f'121.171.5.107/{mask}', 0)
Создание объекта сети net2 с другим IP-адресом, но той же маской подсети.

6. if net1 == net2:
Условие проверки, совпадают ли сети net1 и net2.

7. R.append(net1.num_addresses)
Добавление количества адресов в сети net1 в список R.

8. print(min(R))
Вывод минимального значения количества адресов среди всех сетей, для которых условие совпадения сетей выполнилось.

Ответ: 64

Читайте нас в телеграмме:

Информатика ЕГЭ | itpy 👨‍💻

Присоединяйся к нашему Телеграм каналу: t.me/informatika_kege_itpy
Присоединяйся к нашему Телеграм каналу: t.me/informatika_kege_itpy