Решение: Мощность алфавита номера
На предприятии каждой изготовленной детали присваивается серийный номер, состоящий из 315 символов. В базе данных для хранения каждого серийного номера отведено одинаковое и минимально возможное число байт. При этом используется посимвольное кодирование серийных номеров, все символы кодируются одинаковым и минимально возможным числом бит. Известно, что для хранения 1030 серийных номеров отведено не более 358 Кбайт памяти. Определите максимально возможную мощность алфавита, используемого для записи серийных номеров.
Решение по шагам
5 шаговПусть на один символ отводится $b$ бит. Тогда один серийный номер занимает $315b$ бит, или $\left\lceil\dfrac{315b}{8}\right\rceil$ байт.
Общий объём памяти не должен превышать $358 \cdot 1024 = 366592$ байт. На один номер можно отвести не более $\left\lfloor\dfrac{366592}{1030}\right\rfloor = 355$ байт.
Проверим максимальное число бит на символ: при $b=9$ один номер занимает $\left\lceil\dfrac{315 \cdot 9}{8}\right\rceil = 355$ байт, что укладывается в ограничение.
При $b=10$ один номер занял бы $\left\lceil\dfrac{315 \cdot 10}{8}\right\rceil = 394$ байта, поэтому $10$ бит использовать нельзя.
Максимальная мощность алфавита при $9$ битах на символ равна $2^9$.
Где здесь ошибаются
Забывают округлить объём одного серийного номера вверх до целого числа байт.
Используют $358$ вместо $358 \cdot 1024$, считая объём памяти в байтах.
Берут мощность алфавита равной $2^{10}$, не проверяя ограничение на общий объём памяти.