Задание 11 ЕГЭ по информатике: объём памяти для паролей и номеров

Задание 11 ЕГЭ по информатике — расчёт памяти для хранения паролей, номеров или идентификаторов: каждый символ кодируется минимальным числом бит, каждая запись — минимальным целым числом байт. Это задание повышенного уровня: в нём два округления вверх, и ошибка в любом из них меняет ответ.

Как решать

Шаг 1. Найдите число бит на символ: i — наименьшее целое, при котором 2^i не меньше мощности алфавита N. Для 36 символов i = 6, потому что 2^5 = 32 < 36 ≤ 64 = 2^6.

Шаг 2. Найдите объём одной записи: длину L умножьте на i, переведите биты в байты и округлите вверх, потому что запись занимает целое число байт.

Шаг 3. Прибавьте дополнительные сведения, если они есть (например, 20 байт на пользователя), и умножьте на количество записей.

Обратная задача: известен объём памяти, нужно найти наибольшую мощность алфавита или наибольшую длину записи. Разделите память на количество записей — получится, сколько байт можно отвести одной записи. Затем подберите наибольшее i, при котором L · i бит помещаются в это число байт; мощность алфавита — 2^i.

В ЕГЭ 1 Кбайт = 1024 байт. Программа для проверки перебирает i от 1 до 16 и показывает, при каком i запись перестаёт помещаться в память.

Примеры с решением

Пример 1

При регистрации в компьютерной системе каждому пользователю выдаётся пароль длиной 11 символов, составленный из 26 заглавных латинских букв и 10 цифр. Каждый символ кодируется одинаковым минимально возможным количеством бит, каждый пароль — минимально возможным целым количеством байт. Кроме пароля, для каждого пользователя хранятся дополнительные сведения, под которые отведено 20 байт.

Определите объём памяти в байтах, необходимый для хранения сведений о 50 пользователях.

Проверка ответа на Python

from math import ceil, log2

alphabet = 26 + 10  # заглавные латинские буквы и цифры
length = 11
extra_bytes = 20
users = 50

bits_per_char = ceil(log2(alphabet))
password_bytes = ceil(length * bits_per_char / 8)
print((password_bytes + extra_bytes) * users)

Ответ: 1450

В алфавите 36 символов, 2^5 = 32 < 36 ≤ 64 = 2^6, поэтому на символ нужно 6 бит.

Пароль: 11 · 6 = 66 бит, это 8,25 байта, округляем вверх до 9 байт. На пользователя 9 + 20 = 29 байт, на 50 пользователей 29 · 50 = 1450 байт.

Пример 2

Номер пропуска на предприятии состоит из 23 символов. В базе данных для каждого номера отведено одинаковое минимально возможное целое число байт, символы кодируются посимвольно одинаковым минимально возможным количеством бит. Для хранения 8000 номеров отведено не более 125 Кбайт памяти.

Определите наибольшую возможную мощность алфавита, из которого составляются номера пропусков.

Проверка ответа на Python

from math import ceil

length = 23  # символов в номере пропуска
count = 8000
limit_bytes = 125 * 1024

best = 0
for bits in range(1, 17):  # бит на символ
    number_bytes = ceil(length * bits / 8)
    if number_bytes * count <= limit_bytes:
        best = 2 ** bits  # алфавит из 2^bits символов ещё помещается
print(best)

Ответ: 32

125 Кбайт = 128 000 байт, на один номер приходится не больше 128 000 / 8000 = 16 байт.

При 5 битах на символ номер занимает 23 · 5 = 115 бит, это 15 байт после округления вверх — помещается. При 6 битах 23 · 6 = 138 бит, это 18 байт — не помещается.

Значит, на символ 5 бит, и в алфавите не больше 2^5 = 32 символов.

Типичные ошибки

Потренироваться на тренажёре

Частые вопросы

Как найти, сколько бит нужно на символ?

Найдите наименьшее i, при котором 2^i не меньше количества символов в алфавите. Для 26 букв и 10 цифр нужно 6 бит, для 128 символов — 7 бит.

Почему пароль округляют до целых байт?

Так сказано в условии: каждая запись хранится в минимально возможном целом количестве байт. Поэтому 66 бит пароля занимают 9 байт, хотя 66 бит — это 8,25 байта.

Задание 11 сложнее соседних?

В спецификации 2027 года это первое задание повышенного уровня, задания с 1 по 10 базовые. Оценивается оно так же, 1 первичным баллом, время — около 3 минут.

Официальные материалы

Другие задания

Все задания и структура экзамена — на странице ЕГЭ по информатике. Соседние разборы: задание 10 и задание 12.

Описание задания сверено 28 сентября 2026 года со спецификацией 2027 года (документы 2027 года). Примеры составлены нами по структуре демоверсии, каждое решение запущено, и напечатанный им ответ совпадает с ответом на странице. Кодолимп не связан с разработчиками экзамена. Заметили неточность — напишите нам.