Вопрос:

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

Ответ:

Решение:

  • Каждый символ в кодировке Unicode занимает 16 бит, что равно 2 байтам (16 бит / 8 бит/байт = 2 байта).
  • Предложение стало меньше на 14 байт.
  • Уменьшение размера произошло из-за вычеркивания названия животного, а также лишних запятых и пробелов, которые шли подряд.
  • Сначала определим, сколько символов было удалено: 14 байт / 2 байта/символ = 7 символов.
  • Рассмотрим названия животных и количество символов в них:
    • «Як» - 2 символа
    • «бык» - 3 символа
    • «коза» - 4 символа
    • «баран» - 5 символов
    • «корова» - 6 символов
    • «верблюд» - 7 символов
    • «шиншилла» - 9 символов
  • Если вычеркнуто животное из 7 символов («верблюд»), то это соответствует уменьшению на 7 символов.
  • По условию, были вычеркнуты и лишние запятые и пробелы. Так как два пробела не должны идти подряд, то после названия животного, если оно не последнее, была запятая и пробел.
  • Если вычеркнуто «верблюд» (7 символов), то удаляются 2 символа (запятая и пробел после него), что в сумме дает 7 + 2 = 9 символов. Это не соответствует 7 удаленным символам.
  • Если бы вычеркнули «корова» (6 символов), то добавив запятую и пробел, получилось бы 6 + 2 = 8 символов.
  • Предположим, что вычеркнуто животное, после которого не было запятой и пробела (т.е. оно было последним в списке). В таком случае, удаление 7 символов соответствует вычеркиванию названия «верблюд».
  • Проверим: Если вычеркнули «верблюд» (7 символов) и убрали два пробела (например, между «верблюд» и «шиншилла», а также «шиншилла» и тире), то общее количество удаленных символов может быть 7 + 2 = 9. Это не совпадает с 14 байтами.
  • Давайте посчитаем иначе. Уменьшение на 14 байт означает удаление 7 символов (14 байт / 2 байта/символ = 7 символов).
  • Проанализируем структуру предложения: «Як, бык, коза, баран, корова, верблюд, шиншилла — домашние животные».
  • Животные: Як (2), бык (3), коза (4), баран (5), корова (6), верблюд (7), шиншилла (9).
  • Удаление одного слова из списка животных и лишних запятых/пробелов привело к уменьшению на 7 символов.
  • Если удалить «баран» (5 символов), то убираются 2 запятых и 2 пробела, итого 5 + 2 + 2 = 9 символов.
  • Если удалить «корова» (6 символов), то убираются 2 запятых и 2 пробела, итого 6 + 2 + 2 = 10 символов.
  • Если удалить «верблюд» (7 символов), то убираются 2 запятых и 2 пробела, итого 7 + 2 + 2 = 11 символов.
  • Если удалить «шиншилла» (9 символов), то убирается 1 запятая и 1 пробел, итого 9 + 1 + 1 = 11 символов.
  • Если предположить, что вычеркнуто слово, и были удалены все запятые и пробелы, которые стали лишними после вычеркивания.
  • Предположим, что было вычеркнуто слово, и после него была запятая и пробел.
  • Итоговое уменьшение в 7 символов.
  • Если вычеркнуто «баран» (5 символов), а также 2 лишние запятые и 2 лишних пробела, то общее удаление составит 5 + 2 + 2 = 9 символов.
  • Если вычеркнуто «корова» (6 символов), а также 2 лишние запятые и 2 лишних пробела, то общее удаление составит 6 + 2 + 2 = 10 символов.
  • Если вычеркнуто «верблюд» (7 символов), а также 2 лишние запятые и 2 лишних пробела, то общее удаление составит 7 + 2 + 2 = 11 символов.
  • Давайте разберемся с условием «два пробела не должны идти подряд». Это значит, что после запятой всегда идет пробел, а два пробела подряд — это лишнее.
  • Изначально: «Як, бык, коза, баран, корова, верблюд, шиншилла — домашние животные».
  • Удаляется одно животное.
  • Если удалить «баран»: «Як, бык, коза, корова, верблюд, шиншилла — домашние животные».
  • При этом были удалены запятые и пробелы.
  • Если удалить «баран» (5 символов). Убирается запятая перед ним и пробел после него. Всего 5 + 1 + 1 = 7 символов.
  • Если удалить «корова» (6 символов). Убирается запятая перед ним и пробел после него. Всего 6 + 1 + 1 = 8 символов.
  • Если удалить «верблюд» (7 символов). Убирается запятая перед ним и пробел после него. Всего 7 + 1 + 1 = 9 символов.
  • Если удалить «шиншилла» (9 символов). Убирается запятая перед ним и пробел после него. Всего 9 + 1 + 1 = 11 символов.
  • Единственный вариант, который дает уменьшение на 7 символов, это удаление слова «баран» (5 символов), а также запятой и пробела, которые его отделяли от предыдущего слова.

Ответ: баран