Решение: Объём памяти идентификаторов
При регистрации в компьютерной системе каждому объекту присваивается идентификатор, состоящий из 257 символов и содержащий только цифры семнадцатеричной системы счисления и символы из 4080-символьного специального алфавита. В базе данных для хранения каждого идентификатора отведено одинаковое и минимально возможное целое число байт. При этом используется посимвольное кодирование идентификаторов, все символы кодируются одинаковым и минимально возможным количеством бит. Определите объём памяти (в Мбайт), необходимый для хранения 8 388 608 идентификаторов.
Решение по шагам
4 шагаОпределим размер алфавита. В него входят 17 цифр семнадцатеричной системы и 4080 специальных символов:
$$N = 17 + 4080 = 4097$$Найдём минимальное одинаковое количество бит для кодирования одного символа:
$$2^{12} = 4096 < 4097 \leq 2^{13}, \quad i = 13$$Определим количество бит и минимальное целое число байт для одного идентификатора:
$$257 \cdot 13 = 3341\ \text{бит}; \quad \left\lceil\frac{3341}{8}\right\rceil = 418\ \text{байт}$$Вычислим объём памяти для $8\,388\,608 = 2^{23}$ идентификаторов и переведём его в Мбайт:
$$\frac{418 \cdot 2^{23}}{2^{20}} = 418 \cdot 8 = 3344\ \text{Мбайт}$$Где здесь ошибаются
Считать алфавит равным 4096 символам, забыв, что 17 + 4080 = 4097.
Использовать 12 бит для кодирования символа.
Не округлить объём одного идентификатора вверх до целого числа байт.
Перепутать коэффициенты перевода байт и Мбайт.