Шешімі: Объём хранения паролей
При регистрации в компьютерной системе каждому пользователю выдаётся пароль, состоящий из 12 символов. Каждый пароль должен содержать хотя бы одну десятичную цифру, как прописные, так и строчные латинские буквы, а также не менее одного символа из 6-символьного набора: «&», «#», «$», «*», «!», «@». Таким образом, для формирования пароля используют 68-символьный алфавит. В базе данных для хранения сведений о каждом пользователе отведено одинаковое и минимально возможное целое число байт. При этом используют посимвольное кодирование паролей, все символы кодируют одинаковым и минимально возможным количеством бит. Кроме собственного пароля, для каждого пользователя в системе хранятся дополнительные сведения, для чего выделено целое число байт; это число одно и то же для всех пользователей.
Для хранения сведений о 30 пользователях потребовалось 750 байт. Сколько байт выделено для хранения дополнительных сведений об одном пользователе? В латинском алфавите 26 букв.
Шешім по шагам
5 қадамДля кодирования одного символа выбираем минимальное целое число бит $i$, удовлетворяющее условию $2^i \geq 68$.
$$2^6 = 64 < 68 \leq 128 = 2^7$$Каждый символ кодируется 7 битами. Пароль из 12 символов занимает 84 бита.
$$12 \cdot 7 = 84\ \text{бита}$$Переводим объём пароля в байты и округляем вверх до целого числа байт.
$$\left\lceil \frac{84}{8} \right\rceil = 11\ \text{байт}$$На бір пользователя приходится 750 байт, делённых на 30 пользователей.
$$\frac{750}{30} = 25\ \text{байт}$$Вычитаем объём хранения пароля из общего объёма данных бір пользователя.
$$25 - 11 = 14\ \text{байт}$$Где здесь ошибаются
Используют 6 бит для символа, забывая, что $2^6 = 64 < 68$.
Не округляют объём пароля вверх до целого числа байт.
Вычитают объём пароля из общего объёма 750 байт, не разделив его на 30 пользователей.