Шешімі: Объём памяти идентификаторов
При регистрации в компьютерной системе каждому объекту присваивается идентификатор, состоящий из 250 символов и содержащий только десятичные цифры и символы из 1650-символьного специального алфавита. В базе данных для хранения каждого идентификатора отведено одинаковое и минимально возможное целое число байт. При этом используется посимвольное кодирование идентификаторов, все символы кодируются одинаковым и минимально возможным количеством бит.
Определите объём памяти (в Кбайт), необходимый для хранения 65 536 идентификаторов.
Шешім по шагам
4 қадамВ алфавите идентификатора 10 десятичных цифр и 1650 специальных символов.
$$N = 10 + 1650 = 1660$$Минимальное одинаковое количество бит на один символ определяется условием $2^i \geq 1660$. Получаем 11 бит, так как $2^{10} = 1024 < 1660 \leq 2048 = 2^{11}$.
$$i = 11$$Один идентификатор содержит 250 символов, поэтому для его кодирования требуется $250 \cdot 11 = 2750$ бит, или 343,75 байта. Так как число байт должно быть целым, выделяется 344 байта.
$$V_1 = \left\lceil \frac{250 \cdot 11}{8} \right\rceil = 344\ \text{байта}$$Для хранения 65 536 идентификаторов потребуется 22 544 384 байта. Переводим объём в Кбайт.
$$V = \frac{344 \cdot 65\,536}{1024} = 22\,016\ \text{Кбайт}$$Где здесь ошибаются
Забывают прибавить 10 десятичных цифр к 1650 специальным символам.
Используют 10 бит вместо 11, хотя $2^{10} < 1660$.
Не округляют объём бір идентификатора вверх до целого числа байт.
Переводят байты в Кбайт через 1000 вместо 1024.