Задача Задача №3577548
А
А
Понятно задание. Давай разберём по шагам и дам подсказку, чтобы ты мог сам получиться к ответу.
- Понимание сути задачи
- Дано сетевое адреса и маска: IP 106.184.0.0 и маска 255.248.0.0.
- Нужно узнать, сколько адресов внутри этой сети имеют не кратное 2 количеств единиц в двоичной записи всего IP-адреса.
- Ответ должен быть числом.
- Реше́ние, обобщённо
- В маске 255.248.0.0 число единиц: 8 (из 255) плюс 5 (из 248, так как 11111000). Итого 13 единиц в маске.
- Значит количество свободных битов (host-бит) = 32 - 13 = 19.
- Общее число адресов в сети = 2^19.
- Для любого фиксированного набора network-битов (13 бит) распределение количества единиц в полной 32-битной записи по всем 19 host-битам поровну: среди 2^19 вариаций ровно половина имеют чётное количество единиц в host-части, ровно половина — нечётное.
- Парадоксально, но вне зависимости от того, сколько единиц в фиксированной части (помнит: суммарная чётность зависит от parity фиксированной части и parity host-части), итоговое число адресов с нечётной суммой единиц равно 2^18.
- 2^18 = 262144.
- Сравнение с твоим ответом
- Ты еще не дал свой ответ на задание (написано: «Ученик не дал ответ на задание»). Так что сравнивать не с чем. Но подсказка выше ведёт к правильному числу.
- Подсказка, чтобы выйти на ответ
- Сколько у тебя host-битов? 32 - (8 единиц в первом октете + 5 единиц во втором октете) = 19.
- Всего адресов в сети: 2^19.
- Пусть parity фиксированной части (network) — P. Среди всех 2^19 вариаций host-бит считаем число адресов с общей единицей нечётной. Для любой фиксированной части ровно половина host-бит имеет чётную парность и половина — нечётную, т.к. среди всех двоичных слов длины 19 бит половина имеют чётную сумму бит, половина — наоборот.
- Значит нужное число адресов = 2^18 = 262144.
Ответ: 262144.
Если хочешь, могу разобрать ещё такой тип задач по шагам на пару примеров.
Оцените мой ответ лайком или дизлайком.