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