Что проверяет задание
Задание 1 - про информационный объём текста. Дано предложение, кодировка (сколько бит занимает один символ) и сказано, что из текста вычеркнули слово (или, наоборот, одно слово написали дважды). Размер текста изменился на известное число байт. Нужно найти это слово.
Реже встречается вариант «посчитать объём статьи»: страницы, строки на странице, символы в строке и размер символа.
Информационный объём текста
Информационный объём текста - это число символов, умноженное на размер одного символа:
I = K * i
где K - количество символов, i - сколько бит занимает один символ.
Символом считается всё, что набрано в тексте: буквы, цифры, пробелы, запятые, точки, тире, кавычки, дефисы внутри слов («Винни-Пух» - это 9 символов).
Кодировки из условий:
- КОИ-8, Windows-1251, ASCII - 8 бит на символ, то есть 1 байт;
- «одна из кодировок Unicode» в задании ОГЭ - 16 бит на символ, то есть 2 байта.
Единицы измерения:
1 байт = 8 бит
1 Кбайт = 1024 байта
1 Мбайт = 1024 Кбайта
Как найти вычеркнутое слово
- Переведите разницу в символы. Если текст стал на
Dбайт меньше, а символ занимаетiбит, то исчезлоD * 8 / iсимволов. Для 8-битной кодировки число символов равно числу байт, для 16-битной - вдвое меньше. - Вычтите служебные символы, которые ушли вместе со словом:
- из списка через запятую вычёркивают слово, запятую и пробел - это 2 символа;
- из обычного текста вычёркивают слово и один пробел - 1 символ.
- Остаток - длина слова. Найдите в тексте слово такой длины. В корректном задании оно одно.
Пример. Кодировка 16 бит, текст стал короче на 16 байт. Исчезло 16 * 8 / 16 = 8 символов. Это слово, запятая и пробел, значит, в слове 8 - 2 = 6 букв.
Если слово, наоборот, написали дважды («добавив необходимые запятую и пробел»), рассуждение то же самое: текст стал длиннее на слово плюс 2 символа.
Разбор задачи из демоварианта
Задача. В одной из кодировок Unicode каждый символ кодируется 16 битами. Вова написал текст (в нём нет лишних пробелов):
«Школьные предметы: ОБЖ, химия, физика, алгебра, биология, география, литература, информатика».
Ученик удалил из списка название одного предмета, а также лишние запятую и пробел - два пробела не должны идти подряд. При этом размер нового предложения оказался на 16 байт меньше, чем размер исходного. Напишите в ответе вычеркнутое название предмета.
Решение.
- Один символ - 16 бит, то есть 2 байта. Текст стал короче на 16 байт, значит, исчезло 16 / 2 = 8 символов.
- Вместе с названием предмета удалили запятую и пробел - это 2 символа. На само слово приходится 8 - 2 = 6 букв.
- Длины названий: ОБЖ - 3, химия - 5, физика - 6, алгебра - 7, биология - 8, география - 9, литература - 10, информатика - 11. Шесть букв только у слова «физика».
Ответ: физика.
Типичные ошибки
- Забыли про пробел или запятую и ищут слово на 1-2 буквы длиннее.
- Перепутали биты и байты: при 16 битах на символ один символ - это 2 байта, а не 16.
- Не посчитали дефис: «Человек-паук» - 12 символов.
Объём статьи
Если дано, что статья занимает P страниц, на странице S строк, в строке C символов, а символ занимает i бит, то объём статьи:
I = P * S * C * i бит
Чтобы получить Кбайты, делим на 8 (биты в байты) и на 1024 (байты в Кбайты).
Удобно сразу раскладывать числа на степени двойки: 16 * 32 * 64 * 16 бит = 2^4 * 2^5 * 2^6 * 2^4 = 2^19 бит = 2^16 байт = 64 Кбайт.
