Шешімі: Длина серийного нөмір
На предприятии каждой изготовленной детали присваивают серийный номер, содержащий десятичные цифры и символы из 62-символьного специального алфавита. В базе данных каждый серийный номер занимает одинаковое и минимально возможное число байт. При этом используется посимвольное кодирование серийных номеров, все символы кодируются одинаковым и минимально возможным числом бит. Известно, что 5 895 222 серийных номера занимают более 23 Мбайт памяти. Определите минимально возможную длину серийного номера.
Шешімін қадамдап көрсету
5 қадамОбщее количество символов алфавита равно сумме десятичных цифр и символов специального алфавита:
$$10 + 62 = 72$$Минимальное одинаковое количество бит на один символ:
$$\lceil\log_2 72\rceil = 7$$Проверим, достаточно ли 4 байт на один серийный нөмір. Объём всех нөмір в этом случае:
$$5\,895\,222 \cdot 4 = 23\,580\,888\ \text{байт}$$Поскольку $23\ \text{Мбайт} = 23 \cdot 2^{20} = 24\,117\,248$ байт, четырёх байт недостаточно. Следовательно, один номер занимает 5 байт.
$$5\,895\,222 \cdot 5 > 23 \cdot 2^{20}$$Минимальная длина нөмір, занимающего 5 байт:
$$\left\lceil\frac{7L}{8}\right\rceil = 5 \Rightarrow L = 5$$Где здесь ошибаются
Учитывают только 62 символа специального алфавита и забывают добавить 10 десятичных цифр.
Используют 6 бит на символ, хотя $2^6 = 64 < 72$.
Считают, что 23 Мбайт равны 23 000 000 байт.