Информатика: ОГЭ и ЕГЭ

Тренировка ЕГЭ · задание 11 · наибольшая длина номера

Задание 11 ЕГЭ: наибольшая длина номера

Наибольшая длина номера. Тема номера — информационный объём и мощность алфавита. Ниже — пример с ответом и решением; кнопкой под ним можно решить такую же задачу с другими числами, ответ проверится сразу.

Пример

При регистрации в компьютерной системе каждому пользователю выдаётся пароль, состоящий из L символов. В качестве символов используются 10 десятичных цифр и 2 специальных символов. В базе данных для хранения каждого пароля отведено одинаковое и минимально возможное целое число байт. При этом используется посимвольное кодирование, все символы кодируются одинаковым и минимально возможным числом бит. Известно, что для хранения 5 241 068 паролей отведено не более 502 Мбайт памяти. Определите наибольшее возможное значение L. В ответе запишите только целое число.

Ответ200

Решение

Мощность алфавита: 10 + 2 = 12. На символ нужно 4 бит.

На один номер можно отвести не больше 502 · 1048576 / 5 241 068 байт, то есть 100 байт = 800 бит (целое число байт, округляем вниз).

Символов в номере — не больше 800 / 4, то есть L = 200. Проверка: 200 символов занимают ⌈200 · 4 / 8⌉ = 100 байт, а при L = 201 — уже 101 байт.

import math

bits = math.ceil(math.log2(12))
L = 1
while 5241068 * math.ceil((L + 1) * bits / 8) <= 502 * 1048576:
    L += 1
print(L)

Решить такую задачу — новый вариант с проверкой

Задание 11 ЕГЭ: другие виды

Все задачи задания 11 вперемешку · разбор: как решать задание 11 · пробные варианты ЕГЭ