Вопрос:

10. В одной из кодировок Unicode каждый символ кодируется 16 битами. Вова написал текст (в нем нет лишних пробелов): «Ёж, лев, слон, олень, тюлень, носорог, крокодил, аллигатор — дикие животные». Ученик вычеркнул из списка название одного из животных. Заодно он вычеркнул ставшие лишними запятые и пробелы — два пробела не должны идти подряд. При этом размер нового предложения в данной кодировке оказался на 16 байт меньше, чем размер исходного предложения. Напишите в поле для ответа вычеркнутое название животного.

Ответ:

Решение:

Каждый символ в Unicode кодируется 16 битами, что равно 2 байтам.

Размер нового предложения уменьшился на 16 байт. Это значит, что было удалено 16 байт / 2 байта/символ = 8 символов.

Исходное предложение: «Ёж, лев, слон, олень, тюлень, носорог, крокодил, аллигатор — дикие животные».

Удалены: название одного животного, запятые и пробелы. При этом убраны лишние запятые и пробелы, чтобы два пробела не шли подряд. Значит, после каждого удаленного животного (кроме последнего) убиралась запятая и пробел, а в конце убирался тире и пробел.

Рассмотрим слова в списке:

  • Ёж (2 символа)
  • лев (3 символа)
  • слон (4 символа)
  • олень (5 символов)
  • тюлень (6 символов)
  • носорог (7 символов)
  • крокодил (8 символов)
  • аллигатор (9 символов)

Если удалить животное, то вместе с ним убираются запятая и пробел (по 2 символа), идущие после него. Если удалить последнее животное, то убирается тире и пробел (тоже 2 символа).

Наибольшее слово, которое могло быть удалено — «аллигатор» (9 символов).

После удаления «аллигатор», запятой и пробела (9+2=11 символов), а также тире и пробела (2 символа), общее уменьшение составит 11+2=13 символов.

Это не 8 символов.

Если убрать животное из середины, например, «олень» (5 символов), то уберутся запятая и пробел после него (2 символа). Итого: 5 + 2 = 7 символов. Это тоже не 8.

Давайте посчитаем общее количество символов в удаленном блоке: 16 байт / 2 байта/символ = 8 символов.

Это значит, что было удалено 8 символов. Учитывая, что убирались животное, запятые и пробелы, наиболее вероятным удаленным животным является то, которое состоит из 8 символов, а все остальные удаленные символы - это запятая и пробел.

Животное, состоящее из 8 символов - «крокодил».

Если убрать «крокодил» (8 символов), то после него убирается запятая и пробел (2 символа). Итого 8+2=10 символов. Это не 8.

Если убрать «ёж» (2 символа), то убирается запятая и пробел (2 символа). Итого 2+2=4 символа. Не 8.

Если убрать «лев» (3 символа), то убирается запятая и пробел (2 символа). Итого 3+2=5 символов. Не 8.

Если убрать «слон» (4 символа), то убирается запятая и пробел (2 символа). Итого 4+2=6 символов. Не 8.

Если убрать «олень» (5 символов), то убирается запятая и пробел (2 символа). Итого 5+2=7 символов. Не 8.

Если убрать «тюлень» (6 символов), то убирается запятая и пробел (2 символа). Итого 6+2=8 символов. Это подходит!

Ответ: тюлень