В одной из кодировок Unicode каждый символ кодируется двумя байтами. Коля написал текст (в нём нет лишних пробелов):
«Як, лис, барс, жираф, гепард, медведь, росомаха — дикие животные».
Ученик вычеркнул из списка название одного из животных. Заодно он вычеркнул ставшие
лишними запятые и пробелы — два пробела не должны идти подряд.
При этом размер нового предложения в данной кодировке оказался на 80 бит меньше, чем
размер исходного предложения. Напишите в ответе вычеркнутое название животного.
Лис
Объяснение:
1 байт = 8 бит.
1 символ = 2 байта.
Размер текста уменьшился на 80 бит, а значит на 10 (80 / 8) бит, а из этого следует что было убрано 5 сиволов (10 / 2).
Считаем и ищем где у нас 5 символов путём перебора:
Если вычеркнуть "Як, " - это 4 символа
Если вычеркнуть "лис, " - это 5 символов
Если вычеркнуть "барс, " - это 6 символов
Если вычеркнуть "жираф, " - это 7 символов
Если вычеркнуть "гепард, " - это 8 символов
Если вычеркнуть "медведь, " - это 9 символов
Если вычеркнуть ", росомаха" - это 10 символа
1. Определяем размер исходного предложения:
- Учитываем, что каждый символ кодируется двумя байтами в данной кодировке Unicode.
- Считаем количество символов в исходном предложении.
2. Определяем размер нового предложения:
- Учитываем, что каждый символ кодируется двумя байтами в данной кодировке Unicode.
- В новом предложении удаляем вычеркнутые животные и двойные пробелы.
- Считаем количество символов в новом предложении.
3. Сравниваем размеры исходного и нового предложений:
- Вычисляем разницу в размере, учитывая, что каждый символ кодируется двумя байтами.
- Проверяем, является ли разница в размере равной 80 битам.
4. Находим вычеркнутое название животного:
- Сравниваем исходное предложение с новым предложением.
- Название животного, которое не встречается в новом предложении, будет вычеркнутым названием животного.
Теперь рассмотрим каждый шаг более подробно.
1. Определяем размер исходного предложения:
- В данной кодировке каждый символ кодируется двумя байтами.
- Количество символов в исходном предложении можно подсчитать, игнорируя лишние пробелы и запятые.
- В данном случае, исходное предложение состоит из 7 слов: "Як", "лис", "барс", "жираф", "гепард", "медведь", "росомаха" и 8 запятых.
Исходное предложение содержит:
- 7 слов * 2 байта (каждый символ) = 14 байт
- 8 запятых * 2 байта (каждая запятая) = 16 байт
Полный размер исходного предложения = 14 байт + 16 байт = 30 байт.
2. Определяем размер нового предложения:
- В новом предложении мы удаляем вычеркнутое животное и все двойные пробелы.
- Для вычисления размера нового предложения, нам необходимо учесть количество символов после удаления вычеркнутого животного и двойных пробелов.
- В данном случае, после удаления вычеркнутых животных остаются только 6 слов: "Як", "лис", "жираф", "гепард", "медведь", "росомаха" и 5 запятых.
Новое предложение содержит:
- 6 слов * 2 байта (каждый символ) = 12 байт
- 5 запятых * 2 байта (каждая запятая) = 10 байт
Полный размер нового предложения = 12 байт + 10 байт = 22 байта.
3. Сравниваем размеры исходного и нового предложений:
- Разница в размере можно вычислить путем вычитания размера нового предложения из размера исходного предложения.
- Разница в размере = Размер исходного предложения - Размер нового предложения.
- В данном случае, разница в размере = 30 байт - 22 байта = 8 байт.
Также, из условия задачи известно, что размер нового предложения оказался на 80 бит меньше, чем размер исходного предложения.
- Учитывая, что 1 байт = 8 бит, разница в размере в байтах равна 8 байт.
- Разница в размере 8 байт * 8 бит = 64 бита ≠ 80 битам.
Таким образом, условие задачи не соблюдается. Мы не можем найти вычеркнутое название животного на основе предоставленной информации.
Вывод: Из предоставленной информации невозможно однозначно определить вычеркнутое название животного, так как условие задачи не соблюдается.