Решение: Длина серийного номера
На предприятии каждой изготовленной детали присваивают серийный номер, содержащий десятичные цифры, 52 латинские буквы (с учётом регистра) и символы из 963-символьного специального алфавита. В базе данных для хранения каждого серийного номера отведено одинаковое и минимально возможное число байт. При этом используется посимвольное кодирование серийных номеров, все символы кодируются одинаковым и минимально возможным числом бит. Известно, что для хранения 2000 серийных номеров отведено не более 693 Кбайт памяти. Определите максимально возможную длину серийного номера.
Решение по шагам
5 шаговОпределим мощность алфавита серийного номера:
$$10 + 52 + 963 = 1025$$Минимальное одинаковое число бит на символ должно удовлетворять условию $2^i \ge 1025$. Следовательно, требуется 11 бит.
$$2^{10} < 1025 \le 2^{11}$$Для серийного номера длиной $L$ символов требуется $11L$ бит, или $\left\lceil\dfrac{11L}{8}\right\rceil$ байт.
$$B = \left\lceil\dfrac{11L}{8}\right\rceil$$Переведём общий объём памяти в байты и найдём максимальный размер одного номера:
$$693 \cdot 1024 = 709632\text{ байт},\quad \left\lfloor\dfrac{709632}{2000}\right\rfloor = 354\text{ байта}$$Максимальная длина удовлетворяет неравенству $\left\lceil\dfrac{11L}{8}\right\rceil \le 354$. Значит, $11L \le 2832$, поэтому $L \le 257$.
$$L_{\max} = \left\lfloor\dfrac{354 \cdot 8}{11}\right\rfloor = 257$$Где здесь ошибаются
Считать, что для 1025 символов достаточно 10 бит.
Не учитывать округление размера номера до целого числа байт.
Использовать 693 как число байт, не переводя килобайты в байты.