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