Возьмём условия с сайта https://www.kompege.ru/ и https://vk.com/pro100ege68 Спасибо авторам, но решение там "ручное", а мы решим простой программой!!!
Условие
В терминологии сетей TCP/IP маской сети называют двоичное число, которое показывает, какая часть IP-адреса узла сети относится к адресу сети, а какая – к адресу узла в этой сети. Адрес сети получается в результате применения поразрядной конъюнкции к заданному адресу узла и маске сети.
Сеть задана IP-адресом 192.168.32.128 и маской сети 255.255.255.192.
Сколько в этой сети IP-адресов, для которых сумма единиц в двоичной записи IP-адреса чётна?
В ответе укажите только число.
Решение
from ipaddress import *
count=0
for ip in ip_network('192.168.32.128/255.255.255.192'):
if format(ip, 'b').count('1') %2==0:
count+=1
print (count)
1 строка. Импортируем всё, что есть в модуле ipaddress, удобная привычка для ЕГЭ.
2 строка. Обнуляем наш счетчик count, это наш будущий ответ.
3-5 строки. Пишем цикл. Поделили IP-адрес на маску и получили все ip-адреса, которые соответствуют данной сети с помощью format переводим ip в строку, в которой сразу и считаем количество символов ‘1’, сразу проверяя, что это количество кратно 2 (ведь сумма единиц и их количество - это одно и то же). Подошло? Тогда увеличиваем счетчик count на единицу.
Последняя строчка вне цикла. Выводит-принтит результат, кол-во подошедших ip.
Подписывайтесь и оставляйте комментарии, пишите о том, разбор какого задания ещё хотели бы увидеть на моем канале.
Ссылка на мой разбор похожего задания: https://dzen.ru/a/ZlXLf8t0QTA1W-Hl
#13заданиеЕГЭ #егэ2024 #ipadress #информатика #2024