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