🏠 Главная
/
Задание 1
/
Задача BFE586
Задача: BFE586
×
В одной из кодировок Unicode каждый символ кодируется 16 битами. Вова написал текст (в нём нет лишних пробелов): «Лук, репа, горох, свёкла, морковь, кукуруза, картофель, топинамбур – овощи». Ученик вычеркнул из списка название одного овоща. Заодно он вычеркнул ставшие лишними запятую и пробел – два пробела не должны идти подряд. При этом размер нового предложения в данной кодировке оказался на 16 байт меньше, чем размер исходного предложения. Напишите в ответе вычеркнутое название овоща. --- Номер задачи: BFE586
Ваш ответ:
Сохранить
Правильный ответ:
Объяснить решение
📚 Теория
⭐
×
Объяснение решения
📚
×
📚 Теория
# Тема 01. Количественные параметры информации На ОГЭ эта тема проверяет умение рассчитывать объём текста в битах/байтах и решать задачи на "лишнее слово" или изменение объёма. --- ## 1. Единицы измерения информации | Единица | Сокращение | Соотношение | |---------|-----------|-------------| | Бит | бит | минимальная единица | | Байт | Б | 1 Байт = **8 бит** | | Килобайт | КБ | 1 КБ = **1024** Байт | | Мегабайт | МБ | 1 МБ = **1024** КБ | | Гигабайт | ГБ | 1 ГБ = **1024** МБ | > **Важно:** В задачах ОГЭ используется двоичная система: 1 КБ = 1024 Б (не 1000!). Исключение — когда задача явно указывает иначе. --- ## 2. Мощность алфавита и вес символа **Мощность алфавита ($N$)** — количество различных символов в кодировке. **Вес одного символа ($i$)** — количество бит, нужных для хранения одного символа. Связь: $N = 2^i$, отсюда $i = \log_2 N$ ### Стандартные кодировки: | Кодировка | Бит на символ | Байт на символ | Символов | |-----------|--------------|---------------|---------| | ASCII | 7 | ~1 | 128 | | KOI-8, Windows-1251 | **8** | **1** | 256 | | Unicode (UTF-16) | **16** | **2** | 65 536 | | Unicode (UTF-32) | **32** | **4** | ~4 млрд | > **Совет:** Если в задаче написано "кодировка Unicode" без уточнения — чаще всего подразумевается 16-битная (2 байта на символ). --- ## 3. Основная формула объёма текста $$I = K \times i$$ - $I$ — информационный объём текста (в битах или байтах) - $K$ — количество символов (включая пробелы, знаки препинания, переносы строк) - $i$ — вес одного символа (в битах или байтах, главное — единообразие!) > **Совет:** Следите за единицами! Если $i$ в битах — $I$ тоже в битах. Потом переводите в байты. --- ## 4. Алгоритм решения задачи типа "Объём текста" 1. Определить кодировку → узнать вес символа $i$ (в битах или байтах). 2. Посчитать количество символов $K$ в тексте (все: буквы, пробелы, знаки). 3. Применить формулу: $I = K \times i$. 4. Перевести в нужные единицы (биты → байты: делим на 8; байты → КБ: делим на 1024). --- ## 5. Алгоритм решения задачи "Лишнее слово" Задача: текст уменьшился на $\Delta I$ после удаления одного слова. Найти длину слова. 1. Узнать, на сколько уменьшился объём: $\Delta I$. 2. Перевести $\Delta I$ в символы: $K_{уд} = \Delta I \div i$. 3. Учесть, что вместе со словом удаляется **разделитель**: запятая + пробел = **2 символа** (или только пробел = **1 символ** — смотрите условие!). 4. Длина слова = $K_{уд} - \text{количество разделителей}$. ### Пример: *Объём уменьшился на 24 бита. Кодировка — Windows-1251 (8 бит/символ). Удалено слово с запятой и пробелом.* 1. $K_{уд} = 24 \div 8 = 3$ символа. 2. Разделители: запятая + пробел = 2 символа. 3. Длина слова = $3 - 2 = 1$ буква. --- ## 6. Типичные ошибки - **Забыть пробелы.** Пробел — тоже символ! Он тоже занимает место. - **Перепутать биты и байты.** Всегда проверяйте единицы в условии. - **Неправильный перевод.** 1 КБ = 1024 Б, а не 1000 Б. - **Неверный вес символа.** Если дано "алфавит из 256 символов" — это 8 бит, а не 256 бит! - **Не считать разделитель.** При удалении слова из списка всегда убирается и знак препинания/пробел рядом. --- ## 7. Лайфхаки для ОГЭ > **Совет:** Выучите степени двойки: $2^7=128$, $2^8=256$, $2^{10}=1024$, $2^{16}=65536$. Они встречаются постоянно. > **Совет:** Если объём задан в байтах, а кодировка "8 бит на символ" — значит 1 байт = 1 символ. Количество символов = количество байт. > **Совет:** В задачах с Unicode (16 бит) легко считать в байтах: 1 символ = 2 байта. Умножайте количество символов на 2.
« Предыдущая
К списку задач
Следующая »
☰
OGE
Pro