На предприятии каждой изготовленной детали присваивают серийный номер, содержащий десятичные цифры, \(26\) латинских букв (без учёта регистра) и символы из \(8164\)-символьного специального алфавита. В базе данных для хранения каждого серийного номера отведено одинаковое и минимально возможное число байт. При этом используется посимвольное кодирование серийных номеров, все символы кодируются одинаковым и минимально возможным числом бит. Известно, что для хранения \(835\) серийных номеров требуется более \(156\) Кбайт памяти. Определите минимально возможную длину серийного номера. В ответе запишите только целое число.
Решение:
Для кодирования одного символа в серийном номере необходимо минимум $$\left\lceil \log_2 (10 + 26 + 8164) \right\rceil = 14$$ бит. Пусть длина серийного номера составляет \(N\) символов. Тогда получаем следующее ограничение на \(N:\) $$\left\lceil \frac{14 \cdot N}{ 8} \right\rceil \cdot 835 > 156 \cdot 2^{10}$$ Найти минимальное \(N\) легче всего программно
Python
from math import ceil
for N in range(1, 200):
if ceil(14 * N / 8) * 835 > 156 * 2**10:
print(N)
break
Ответ: \(110\)
Эффективно готовьтесь к ЕГЭ по информатике с новым тренажёром, эмулирующем работу станции КЕГЭ, которая используется на реальном экзамене