Задача из демоверсии 2026 года по информатике с сайта ФИПИ.

В первую очередь формулы.
N = 2i
I = K * i
Iобщ = I * n
N - мощность алфавита (количество символов в используемом наборе)
i - вес одного символа в битах (просто размер одного символа из используемого алфавита)
I - размер в битах пароля, номера или идентификатора (в зависимости от контекста задачи)
K - количество символов в идентификаторе, номере или пароле (опять же, смотря что в задаче)
Iобщ - общий объем в битах всех идентификаторов, номеров или паролей
n - количество паролей, номеров или идентификаторов
К решению задачи.
Пишем дано:
K = 2783
В базе данных каждый серийный номер занимает одинаковое и минимально возможное целое число байт
Это означает, что когда найдем размер в битах одного серийного номера, результат нужно разделить на 8 - перевести в байты
При этом используется посимвольное кодирование серийных номеров, все символы кодируются одинаковым и минимально возможным целым числом бит.
Это отсылка к формуле I = K * i
Сначала находим в битах
n = 3845627
Iобщ >= 11 Гбайт
Найти:
N - ?
Важно понимать, что решив задачу, вам нужно будет проверить, подходит ли результат!
Переходим к решению.
Я предлагаю использовать в качестве калькулятора терминал IDLE Python

Для начала найдем те данные, которые выражаются из известных данных.
Для того, чтобы найти N, нам нужно знать i
i мы можем выяснить из формулы I = K * i
А неизвестную I из формулы Iобщ = I * n
I = Iобщ / n
Напомню, так как в задаче каждый серийный номер мы переводим в байты, значит Iобщ тоже переведем в байты и разделим на n

Так как размер общий не менее 11 Гбайт, значит округляем получившиеся значение в большую сторону
3072
I = 3072 байта
I = K * i
Здесь вспоминаем, что серийный номер мы кодируем в битах, значит I нужно умножить на 8
i = I / K

И вот в этом моменте требуется проверка.
Да, на опыте вы точно будете знать, какой i будет правильным. Пока проверим i = 8 и i = 9
Помните, что i может быть только целым числом.
Сначала проверим i = 8

Далее формула Iобщ = I * n

Результат меньше 11 Гигабайт, значит i = 8 не подходит
Проверим i = 9 бит

Ура! Более 11 Гигабайт.
Значит i = 9 бит подходит.
Определите минимально возможную мощность алфавита, используемого для записи серийных номеров.
Минимальная и максимальная мощность алфавита:
Допустим, у нас 29 = 512
Но, мы помним, что и 257 тоже будет 29
То есть здесь важен диапазон, который мы можем использовать!
28 = 256 , а следующее число будет уже 29 степени.
Мы ищем минимально возможную мощность. Это 257