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