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

Тренировка ЕГЭ · задание 11 · мощность алфавита

Задание 11 ЕГЭ: мощность алфавита

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

Пример

При регистрации в компьютерной системе каждому пользователю выдаётся пароль, состоящий из 127 символов. В базе данных для хранения каждого пароля отведено одинаковое и минимально возможное целое число байт. При этом используется посимвольное кодирование, все символы кодируются одинаковым и минимально возможным числом бит. Известно, что для хранения 47 273 паролей отведено не более 2331 Кбайт памяти. Определите максимально возможную мощность алфавита, используемого для записи паролей. В ответе запишите только целое число.

Ответ8

Решение

На один номер можно потратить не более 2331 · 1024 / 47 273 байт, то есть не больше 50 байт = 400 бит (целое число байт, округляем вниз).

На символ — не больше 400 / 127, то есть 3 бит. Проверка: при 3 битах номер занимает ⌈127 · 3 / 8⌉ = 48 байт, при 4 — 64 байт (уже не помещается).

Мощность алфавита не больше 23 = 8.

import math

best = 0
for power in range(2, 70000):
    bits = math.ceil(math.log2(power))          # бит на символ
    per_number = math.ceil(127 * bits / 8)      # байт на номер
    if 47273 * per_number <= 2331 * 1024:
        best = power
print(best)

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

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

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