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