Вы когда-нибудь теряли балл на ЕГЭ из-за того, что забыли округлить вверх? Или думали, что «7 символов — это 3 бита», а на самом деле — 3 бита не хватает?
Если да — эта статья для вас.
Задание 11 кажется простым: «посчитай, сколько байт занимает пароль». Но именно здесь скрываются самые коварные ловушки ЕГЭ по информатике.
Сегодня разберём всё по полочкам — от базовой теории до решения всех типов задач из реальных вариантов, строго по вашему конспекту. Готовьтесь — будет жарко! 🔥
📚 Теория: алфавит, мощность и биты
Что такое алфавит?
Это множество символов, которые могут использоваться в сообщении. Например:
- Цифры: 0–9 → 10 символов
- Русские буквы (без ё): А–Я → 33 символа
- Спецсимволы: @#$% → 4 символа
Что такое мощность алфавита (N)?
Это количество символов в алфавите.
Пример: если пароль состоит из цифр и букв A, B, C, то:
- Цифры: 10
- Буквы: 3
→ N = 13
Сколько бит нужно на один символ?
Чтобы закодировать N символов, нужно найти минимальное целое число i, такое что:
где ⌈x⌉ — округление вверх («потолок»).
💡 Почему именно вверх?
Потому что 3 бита = 8 значений, а если у нас 9 символов — 3 бит не хватит! Нужно 4 бита (16 значений).
Единицы измерения:
- 1 байт = 8 бит
- 1 Кбайт = 1024 байт
- 1 Мбайт = 1024 Кбайт = 1024×1024=1 048 5761024×1024=1048576 байт
⚠️ Ловушка №1: в ЕГЭ всегда используют 1024, а не 1000!
✅ Тип 1: Объём памяти под пользователей (базовый уровень)
Условие задачи
При регистрации в компьютерной системе каждому пользователю выдаётся пароль, состоящий из 6 символов и содержащий только символы из 7-буквенного набора А, В, Е, К, М, Н, О. В базе данных для хранения сведений о каждом пользователе отведено одинаковое и минимально возможное целое число байт. При этом используют посимвольное кодирование паролей, все символы кодируются одинаковым и минимально возможным количеством бит. Кроме собственно пароля для каждого пользователя в системе хранятся дополнительные сведения, для чего отведено 10 байт. Определите объём памяти в байтах, необходимый для хранения сведений о 100 пользователях.
- пароль: 6 символов
- Алфавит: А, В, Е, К, М, Н, О → 7 символов
- Под пароль выделяется минимальное количество бит
- Дополнительно: 10 байт служебной информации на пользователя
- Найти объём памяти для 100 пользователей
🔍 Решение вручную:
- Мощность алфавита: N = 7
- Найдём бит на символ:
На пароль: 6×3=18 бит
3. Переведём в байты:
4. Всего на пользователя: 3+10=13 байт
5. На 100 пользователей: 100×13=1300 байт
✅ Ответ: 1300
💡 Главное: округление вверх делается дважды — сначала биты на символ, потом байты на пароль!
✅ Тип 2: Максимальная длина серийного номера (средний уровень)
Условие задачи
На предприятии каждой изготовленной детали присваивают серийный номер, содержащий десятичные цифры, 52 латинские буквы (с учётом регистра) и символы из 458-символьного специального алфавита. В базе данных для хранения каждого серийного номера отведено одинаковое и минимально возможное число байт. При этом используется посимвольное кодирование серийных номеров, все символы кодируются одинаковым и минимально возможным числом бит. Известно, что для хранения 862 серийных номеров отведено не более 276 Кбайт памяти. Определите максимально возможную длину серийного номера. В ответе запишите только целое число.
- Алфавит:10 цифр
52 буквы (с учётом регистра)
458 спецсимволов
→ N = 10 + 52 + 458 = 520 - На 862 номера потрачено более 276 Кбайт
- Найти максимально возможную длину номера
🔍 Решение через Python
🔍 Что делает программа?
- Считает бит на символ:
2. Перебирает длину k от 1 вверх
3. Для каждой k считает общий объём в байтах (ceil(bit/8))
Проверяет: умещается ли в 276 Кбайт?
4. Выводит последнее k, которое ещё умещается
💡 Ловушка №2: просят максимальную длину, поэтому нужно последнее подходящее значение, а не первое!
Ответ: 327
✅ Тип 3: Минимальная мощность алфавита (сложный уровень)
На предприятии каждой изготовленной детали присваивают серийный номер, состоящий из 261 символов. Для его хранения отведено одинаковое и минимально возможное число байт. При этом используется посимвольное кодирование серийных номеров, все символы кодируются одинаковым и минимально возможным числом бит. Известно, что для хранения 252 500 серийных номеров отведено более 31 Мбайт памяти. Определите минимально возможную мощность алфавита, из которого составляются серийные номера.
В ответе запишите только число.
Условие (№17552):
- Длина номера: 261 символ
- На 252 500 номеров потрачено более 31 Мбайт
- Найти минимально возможную мощность алфавита
🔍 Решение через Python:
🔍 Что делает программа?
- Перебирает мощность алфавита N от 2 вверх
- Для каждого N: Считает бит на символ → общий объём
Проверяет: превышает ли 31 Мбайт? - Как только превышает — выводит это N и останавливается
💡 Ловушка №3: просят минимальную мощность, при которой объём уже больше 31 Мбайт.
То есть: первое N, нарушающее условие — и есть ответ!
Ответ: 16
✅ Тип 4: Минимальная длина номера (базовый, но с подвохом)
На предприятии каждой изготовленной детали присваивают серийный номер, содержащий десятичные цифры и символы из 17-символьного специального алфавита. В базе данных каждый серийный номер занимает одинаковое и минимально возможное число байт. При этом используется посимвольное кодирование серийных номеров, все символы кодируются одинаковым и минимально возможным числом бит. Известно, что для хранения 7 564 230 серийных номеров требуется более 31 Мбайт памяти. Определите минимально возможную длину серийного номера.
Условие:
- Алфавит: 10 цифр + 17 спецсимволов → N = 27
- На 7 564 230 номеров нужно более 31 Мбайт
- Найти минимальную длину номера
🔍 Решение:
🔍 Логика:
- Ищем первую длину k, при которой объём превысит 31 Мбайт
- Это и есть минимальная возможная длина, удовлетворяющая условию
Ответ: 5
🎯 Главные выводы: как не попасть в ловушки?
🔸 Где округлять?
- Биты на символ: всегда вверх → i=⌈log2N⌉
- Байты на объект: всегда вверх → B=⌈биты/8⌉
- Итоговый объём: не округляется — считается как число×B
💡 Заключение
Ручное решение возможно, но рискованно из-за:
- двойного округления (биты → байты),
- путаницы с «более/не более»,
- больших чисел.
Лучшая стратегия:
- Запомните формулы.
- На экзамене — решайте через перебор в уме или на черновике по шагам.
- Всегда задавайте себе вопрос: «что именно спрашивают — min или max?» и «строгое или нестрогое неравенство?»
Подпишитесь на мой канал и научитесь решать все задания ЕГЭ по информатике!
Удачи на экзамене!