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