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