Задание №1 — Теоретические основы информатики
В одной из кодировок Unicode каждый символ кодируется 16 битами.
Вова хотел написать текст (в нём нет лишних пробелов):
«Скользя по утреннему снегу,
Друг милый, предадимся бегу
Нетерпеливого коня
И навестим поля пустые…»
Одно из слов ученик написал два раза подряд, поставив между одинаковыми словами один пробел. При этом размер написанного предложения в данной кодировке оказался на 18 байт больше, чем размер нужного предложения. Напишите в ответе лишнее слово.
Правильный ответ
навестим
Пояснение
Решение.
1. Сначала определим информационный вес одного символа в данной кодировке. По условию задачи каждый символ кодируется 16 битами. Переведём это значение в байты, так как разница в размере предложения дана в байтах. Поскольку , получаем:
.
2. Ученик написал одно слово дважды, добавив между ними один лишний пробел. Это привело к увеличению размера текста на 18 байт. Вычислим общее количество лишних символов (), разделив общий объём лишних данных на вес одного символа:
.
3. В эти 9 лишних символов входят: само лишнее слово и один пробел, который ученик поставил между повторяющимися словами. Чтобы найти количество букв в самом слове, нужно из общего количества лишних символов вычесть один пробел:
.
4. Теперь найдём в исходном тексте слово, состоящее из 8 букв. Проверим слова из текста:
— «Скользя» (7 букв)
— «утреннему» (9 букв)
— «снегу» (5 букв)
— «милый» (5 букв)
— «предадимся» (10 букв)
— «бегу» (4 букв)
— «нетерпеливого» (13 букв)
— «коня» (4 буквы)
— «навестим» (8 букв) — подходит
— «поля» (4 буквы)
— «пустые» (6 букв)
Слово «навестим» содержит ровно 8 букв.
Ответ: навестим
Источник: ФИПИ