ЕГЭ, ОГЭ, программирование и робототехника в Калининграде

№ 11041. Резервная волна 2025

На предприятии каждой изготовленной детали присваивают серийный номер, содержащий десятичные цифры и символы из 17-символьного специального алфавита. В базе данных каждый серийный номер занимает одинаковое и минимально возможное число байт. При этом используется посимвольное кодирование серийных номеров, все символы кодируются одинаковым и минимально возможным числом бит. Известно, что для хранения 7 564 230 серийных номеров требуется более 31 Мбайт памяти.

Определите минимально возможную длину серийного номера.

from math import ceil, log2

alphabet = 17 + 10
nums = 7_564_230
memory_size = 31 * 2 ** 20

# Подбором в цикле
for serial_num_len in range(1, 10):
    bits = ceil(log2(alphabet))
    bytes = ceil(serial_num_len * bits / 8)
    if nums * bytes >= memory_size:
        print(serial_num_len)
        break
Разберём это задание на бесплатном пробном занятии

Преподаватель покажет, как решать такие задачи, и подскажет, с чего начать подготовку. Группы до 8 человек, очно в Калининграде и онлайн.

Записаться на пробное занятие