Решение: Объём памяти для паролей
При регистрации в компьютерной системе каждому пользователю выдаётся пароль, состоящий из 10 символов. В качестве символов используют прописные буквы латинского алфавита, то есть 26 различных символов. В базе данных для хранения сведений о каждом пользователе отведено одинаковое и минимально возможное целое число байт. При этом используют посимвольное кодирование паролей: все символы кодируют одинаковым и минимально возможным количеством бит. Кроме пароля, для каждого пользователя хранятся дополнительные сведения, для чего отведено 15 байт на одного пользователя. Определите объём памяти в байтах, необходимый для хранения сведений о 50 пользователях.
Решение по шагам
5 шаговОпределим минимальное количество бит для кодирования одной буквы. Оно должно удовлетворять условию $2^i \geq 26$.
$$2^4 = 16 < 26, \quad 2^5 = 32 \geq 26$$Один символ кодируется 5 битами, поэтому пароль из 10 символов занимает:
$$10 \cdot 5 = 50\ \text{бит}$$Переведём объём пароля в байты и округлим вверх до целого числа байт:
$$\left\lceil \frac{50}{8} \right\rceil = 7\ \text{байт}$$Для одного пользователя требуется 7 байт для пароля и 15 байт для дополнительных сведений:
$$7 + 15 = 22\ \text{байта}$$Для 50 пользователей необходимый объём памяти равен:
$$22 \cdot 50 = 1100\ \text{байт}$$Где здесь ошибаются
Использовать 4 бита для символа, хотя 4 бита позволяют закодировать только 16 символов.
Не округлять 50 бит до целого числа байт.
Забыть добавить 15 байт дополнительных сведений для каждого пользователя.