В терминологии сетей tcp/ip маской сети называют двоичное число, которое показывает, какая часть ip-адреса узла сети относится к адресу сети, а какая - к адресу узла в этой сети. адрес сети получается в результате применения поразрядной конъюнкции к заданному адресу узла и маске сети. сеть задана ip-адресом 117.32.0.0 и маской сети 255.224.0.0. сколько в этой сети ip-адресов, которые имеют ровно два одинаковых по значению байта? ip-адрес сети и широковещательный адрес учитывать не следует.

Поляков Евгений Александрович

Учитель информатики высшей категории

Проверено учителем

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

  • IP-адрес сети: 117.32.0.0
  • Маска сети: 255.224.0.0

Переведем маску в двоичный вид, чтобы понять границы сети:

  • 255 = 11111111
  • 224 = 11100000
  • 0 = 00000000
  • 0 = 00000000

Маска содержит 11 единиц ( 8+38 plus 3). Это значит, что первые 11 бит адреса неизменны (относятся к сети), а оставшиеся 21 бит ( 321132 minus 11) отведены под узлы. Границы адресов:

  1. Первый байт: Всегда 117.
  2. Второй байт: Первые 3 бита фиксированы (из адреса сети 32), остальные 5 бит меняются. В двоичном виде 32 — это 00100000. Диапазон второго байта: от 00100000 (32) до 00111111 (63).
  3. Третий и четвертый байты: Любые значения от 0 до 255.

Итоговый диапазон: 117.[32...63].[0...255].[0...255] Общее количество адресов: 32×256×256=2,097,15232 cross 256 cross 256 equals 2 comma 097 comma 152. Исключаем адрес сети (117.32.0.0) и широковещательный адрес (117.63.255.255). 2. Подсчет адресов с ровно двумя одинаковыми байтами IP-адрес состоит из четырех байтов: (b1,b2,b3,b4)open paren b sub 1 comma b sub 2 comma b sub 3 comma b sub 4 close paren, где b1=117b sub 1 equals 117. Нам нужно найти случаи, когда среди этих четырех чисел ровно одна пара одинаковых. Возможные пары байтов:

  1. b1=b2b sub 1 equals b sub 2: 117=b2117 equals b sub 2. Но b2b sub 2 в диапазоне [32,63]open bracket 32 comma 63 close bracket, поэтому 117117 там быть не может. 0 вариантов. b1=b3b sub 1 equals b sub 3: 117=b3117 equals b sub 3. b1=b4b sub 1 equals b sub 4: 117=b4117 equals b sub 4. b2=b3b sub 2 equals b sub 3: Значения в пересечении диапазонов [32,63]open bracket 32 comma 63 close bracket и [0,255]open bracket 0 comma 255 close bracket. b2=b4b sub 2 equals b sub 4: Аналогично случаю 4. b3=b4b sub 3 equals b sub 4: Любые значения [0,255]open bracket 0 comma 255 close bracket, кроме тех, что создают тройки или две пары.

Расчет по случаям:

  • Случай А: b1=b3=117b sub 1 equals b sub 3 equals 117
    • b2b sub 2 имеет 32 варианта (32–63). b4b sub 4 имеет 256 вариантов (0–255). Всего: 32×256=8,19232 cross 256 equals 8 comma 192. Исключаем "тройки" ( b1=b3=b2b sub 1 equals b sub 3 equals b sub 2 или b1=b3=b4b sub 1 equals b sub 3 equals b sub 4) и "две пары". Так как b2b sub 2 не может быть 117, исключаем только b4=117b sub 4 equals 117 (32 адреса) и случаи, когда b2=b4b sub 2 equals b sub 4 (32 адреса). Чистыми: 8,1923232=8,1288 comma 192 minus 32 minus 32 equals 8 comma 128.
  • Случай Б: b1=b4=117b sub 1 equals b sub 4 equals 117
    • Аналогично случаю А: 32×256=8,19232 cross 256 equals 8 comma 192. Исключаем b3=117b sub 3 equals 117 (уже учтено в А) и b2=b3b sub 2 equals b sub 3 (32 адреса). Чистыми: 8,1923232=8,1288 comma 192 minus 32 minus 32 equals 8 comma 128.
  • Случай В: b2=b3b sub 2 equals b sub 3
    • b2b sub 2 может быть любым от 32 до 63 (32 варианта). Значит, b3b sub 3 принимает то же значение. b4b sub 4 имеет 256 вариантов. Всего: 32×256=8,19232 cross 256 equals 8 comma 192. Исключаем: b4=b2b sub 4 equals b sub 2 (32 адреса), b4=b1=117b sub 4 equals b sub 1 equals 117 (32 адреса), b3=b1=117b sub 3 equals b sub 1 equals 117 (невозможно). Чистыми: 8,1923232=8,1288 comma 192 minus 32 minus 32 equals 8 comma 128.
  • Случай Г: b2=b4b sub 2 equals b sub 4
    • Аналогично случаю В.
    • Чистыми: 8,1923232=8,1288 comma 192 minus 32 minus 32 equals 8 comma 128.
  • Случай Д: b3=b4b sub 3 equals b sub 4
    • b3b sub 3 имеет 256 вариантов (0–255). b2b sub 2 имеет 32 варианта (32–63). Всего: 256×32=8,192256 cross 32 equals 8 comma 192. Исключаем: b3=b4=b2b sub 3 equals b sub 4 equals b sub 2 (32 адреса), b3=b4=b1=117b sub 3 equals b sub 4 equals b sub 1 equals 117 (1 адрес), b1=b2b sub 1 equals b sub 2 (невозможно). Чистыми: 8,192321=8,1598 comma 192 minus 32 minus 1 equals 8 comma 159.

3. Проверка исключенных адресов (Сеть и Бродкаст)

  • Адрес сети: 117.32.0.0 ( b3=b4=0b sub 3 equals b sub 4 equals 0) — входит в случай Д. Бродкаст: 117.63.255.255 ( b3=b4=255b sub 3 equals b sub 4 equals 255) — входит в случай Д.

Оба адреса имеют ровно одну пару, их нужно вычесть из итоговой суммы. Итоговый расчет Суммируем все чистые случаи и вычитаем 2 служебных адреса: 8,128+8,128+8,128+8,128+8,1592=40,6718 comma 128 plus 8 comma 128 plus 8 comma 128 plus 8 comma 128 plus 8 comma 159 minus 2 equals 40 comma 671Ответ: 40671 Могу ли я помочь вам с программированием алгоритма для проверки подобных задач на Python?

Форма ответа

Ваш аватар