Давайте последовательно решать задачу.
Шаг 1. Определим исходные данные
Каждый символ кодируется 12 битами.
Текст не содержит лишних пробелов (предполагается, что между словами — один пробел, запятыми — без пробелов после них).
Исходный текст:
«В России и в СССР в дело развития науки информатики внесли неоценимый вклад многие учёные, среди них Берг А. И., Канторович Л. В., Лебедев С. А., Марков А. А., Криницкий Н. А., Ляпунов А. А., Ершов А. П.»
После удаления фамилии и инициалы одного учёного, а также запятой и пробела рядом, размер текста уменьшился на 18 байт (то есть на 18×8=144 бит).
Шаг 2. Определим общую информацию о длине исходного текста.
Дано:
- Длина исходного текста в символах:
Количество символов = исходный размер в битах / 12.
Необходимо понять, какая фамилия была удалена. Варианты фамилий, судя по списку:
- Берг
- Канторович
- Лебедев
- Марков
- Криницкий
- Ляпунов
- Ершов
Шаг 3. Посчитаем количество символов в исходном тексте.
Для этого нам нужно найти длину текста.
Общая длина исходного текста (в байтах) — пусть L.
Исходный полностью текст:
"В России и в СССР в дело развития науки информатики внесли неоценимый вклад многие учёные, среди них Берг А. И., Канторович Л. В., Лебедев С. А., Марков А. А., Криницкий Н. А., Ляпунов А. А., Ершов А. П."
Шаг 4. Подсчёт длины исходного текста.
Вычислим длину текста в символах:
Найдём количество байт в полном тексте:
Общая длина текста в байтах = (Общее число символов) * 12 бит / 8 = Общее число символов * 1.5.
В задаче указано, что после удаления фамилии и инициалы, а также запятой и пробела, текст стал на 18 байт короче.
Шаг 5. Поиск удалённой фамилии.
Так как удалённая часть — фамилия, без инициала, запятой и пробела, она — последовательность символов без пробелов и запятых.
Проверим длины фамилий:
- Берг — 4 символа
- Канторович — 10 символов
- Лебедев — 7 символов
- Марков — 6 символов
- Криницкий — 9 символов
- Ляпунов — 7 символов
- Ершов — 5 символов
И также знаки форматирования: фамилия + пробел + инициалы + запятые + пробелы.
Шаг 6. Анализ изменений длины.
Дано, что:
В результате удаления уменьшение на 18 байт = 144 бита.
Поскольку каждый символ — 12 бит, то:
( \text{число символов, удалённых} = \frac{144 \text{ бит}}{12 \text{ бит/символ}} = 12 \text{ символов} )
Это важно:
Удалённая часть занимает ровно 12 символов.
Шаг 7. Сравним длины возможных фамилий и возможных дополнений.
Нам нужно найти фамилию, у которой сумма длины фамилии и сразу после неё запятой, пробела и инициальной части дает ровно 12 символов.
Рассмотрим, как выглядит формат удаления:
Фамилия + " " + Инициалы + "," + " ".
Корректный образец:
Фамилия И. И., (без кавычек).
Тогда количество символов:
- Фамилия (различная длина)
- пробел (1)
- Инициалы (например, "А. И.") — 5 символов (А. И.)
- запятая (1)
- пробел (1)
Общий размер для удаляемого фрагмента:
длина_фамилии + 1 + 5 + 1 + 1 = длина_фамилии + 8
Поскольку общая длина — 12 символов, ищем длина_фамилии + 8 = 12, значит:
длина_фамилии = 4
Итог:
Удалённая фамилия состоит из 4 символов.
Проверяем список фамилий:
- Берг — 4 символа
- Ершов — 5 символов
- Лебедев — 7
- Канторович — 10
- Марков — 6
- Криницкий — 9
- Ляпунов — 7
Самая подходящая — "Берг" — ровно 4 символа.
Ответ:
Удалённая фамилия — "Берг".