Найти тему

ЕГЭ 13 информатика разбор

Оглавление

Готовясь к экзамену многие хотят научиться решать 13 задание (ЕГЭ информатика) на питоне. Я уже разбирал основные типажи задач на организацию компьютерных сетей в статье:

Эта статья посвящена менее ожидаемым на ЕГЭ задачам, но все же важным для общего понимания темы.

Разбор 13 задания ЕГЭ информатика

(№7024 с сайта К.Ю. Пoлякoвa (М. Ишимов)) В терминологии сетей TCP/IP маской сети называют двоичное число, которое показывает, какая часть IP-адреса узла сети относится к адресу сети, а какая - к адресу узла в этой сети. Адрес сети получается в результате применения поразрядной конъюнкции к заданному адресу узла и маске сети. Для узла с IP-адресом 120.216.74.153 адрес сети равен 120.216.0.0. Чему равно наибольшее количество возможных адресов в этой сети?

Чтобы создать сеть нам нужен адрес сети (или узла, входящего в данную сеть) и маска. Заметим, что в этой задаче маска у нас не дана. В информатике чаще всего, когда у нас нет каких-то данных, мы начинаем перебирать их возможные варианты в цикле.

Будем перебивать переменную mask как число от 0 до 32, так как маску можно задавать количеством единиц. На примере ниже в получившемся адресе сети через / записано количество единиц в маске.

И если посмотреть как будет выглядеть 32-битная запись маски, то действительно в ней 21 единица.

-2

Тогда на данный момент код задачи, которую мы решаем, будет выглядеть следующим образом:

Не забываем добавить 0, так как у нас не IP адрес сети, а IP адрес узла.
Не забываем добавить 0, так как у нас не IP адрес сети, а IP адрес узла.

Мы уже знакомы c функциями ip_network и ip_address, но для этой задачи нам потребуется метод num_addressws, который позволит узнать, сколько отдельных адресов в сети. Посмотрим, как он работает.

Выводятся возможные сети, через / выводится количество единиц, составляющих маску и вторым числом в строке выводится количество возможных IP-адресов в этой сети.
Выводятся возможные сети, через / выводится количество единиц, составляющих маску и вторым числом в строке выводится количество возможных IP-адресов в этой сети.

Мы можем найти сеть из условия задачи и посмотреть чему равно наибольшее количество возможных адресов в этой сети.

-5

Ответом будет 524288. Если мы не хотим высматривать нужную нам сеть самостоятельно, то можно внести дополнительную строку с проверкой через метод network_address в наш код и сразу получить релевантный вывод.

Ответ на задачу №1:  524288
Ответ на задачу №1: 524288

Типаж: 13 задание ЕГЭ информатика ip

(№ 7034 с сайта К.Ю. Пoлякoвa) (М. Ишимов) В терминологии сетей TCP/IP маской сети называют двоичное число, которое показывает, какая часть IP-адреса узла сети относится к адресу сети, а какая - к адресу узла в этой сети. Адрес сети получается в результате применения поразрядной конъюнкции к заданному адресу узла и маске сети. Сеть задана IP-адресом 135.221.128.0 и маской сети 255.255.128.0. Определите минимальную сумму единиц в двоичной записи IP-адреса в этой сети.

Идея решения достаточно простая: создадим сеть, будем перебирать в ней все возможные IP-адреса и выберем из них тот, в котором минимальная сумма единиц.

Перед циклом зададим переменную mn для поиска минимального количества, чтобы программе было с чем сравнивать при первом проходе цикла. Так как максимальное количество единиц в IP-адресе не превышает 32, то можно взять любое число, большее этого значения.

Далее в цикле будем каждый ip адрес переводить в двоичный вид и считать в нем количество единиц с помощью метода count.

В переменную mn каждый раз будет записываться минимальное их всех найденных на данный момент значений.

Ответ на задачу №2: 11
Ответ на задачу №2: 11

Типаж: маски ЕГЭ информатика 13 задание

(№ 7280 с сайта К.Ю. Пoлякoвa) В терминологии сетей TCP/IP маской сети называют двоичное число, которое показывает, какая часть IP-адреса узла сети относится к адресу сети, а какая – к адресу узла в этой сети. Адрес сети получается в результате применения поразрядной конъюнкции к заданному адресу узла и маске сети. Узлы с IP-адресами 176.213.225.119 и 176.213.195.58 находятся в одной сети. Укажите наибольшее возможное значение третьего слева байта маски этой сети. Ответ запишите в виде десятичного числа.

На этот раз сеть у нас задана двумя узлами, находящимися в ней. Создавать сеть по IP-адресу узла мы умеем, для этого воспользуемся функцией ip_network. И так как мы создаем сеть не по ее IP-адресу, а по адресу узла, то в конце дописываем 0.

Так как узла два, то и сети мы создадим две.

-8

Далее нам надо будет осуществить проверку действительно ли это одна и та же сеть и если данное условие выполняется, то можно выводить маску.

-9

При таком выводе маске удобно отвечать на вопрос о количестве единиц/нулей в маске, но для точного определения байта маски лучше воспользоваться методом netmask. Так как есть у нас одна, то не имеет значение применять этот метод к сети net_1 или net_2.

Просмотрев третьи байты масок находим наибольшее возможное значение третьего слева байта маски.

Ответ на задачу №3: 192
Ответ на задачу №3: 192

(№ 7280 с сайта К.Ю. Пoлякoвa) В терминологии сетей TCP/IP маской сети называют двоичное число, которое показывает, какая часть IP-адреса узла сети относится к адресу сети, а какая – к адресу узла в этой сети. Адрес сети получается в результате применения поразрядной конъюнкции к заданному адресу узла и маске сети. Узлы с IP-адресами 193.45.192.104 и 193.45.206.210 находятся в разных сетях. Укажите наименьшее возможное значение третьего слева байта маски этой сети. Ответ запишите в виде десятичного числа.

Теперь по условию задачи узлы у нас находятся в разных сетях. Начало решения такое же как в предыдущей задаче.

-11

Далее встает вопрос – как указать, что узлы находятся в разных сетях? Фактически здесь нам нужна операция инверсии при логическом рассуждении. Если в одной сети мы указывали как == , то обратной операцией будет != .

-12

При таком выводе маске удобно отвечать на вопрос о количестве единиц/нулей в маске, но для точного определения байта маски лучше воспользоваться методом netmask.

Вывод масок для сети net_1
Вывод масок для сети net_1
Вывод масок для сети net_2
Вывод масок для сети net_2

Как видно, результат одинаковый, и ответом на данную задачу является число 248.

Наука
7 млн интересуются