При регистрации в компьютерной системе каждому пользователю выдаётся пароль, состоящий из 20 символов...

Тематика Информатика
Уровень 10 - 11 классы
регистрация пароль база данных хранение данных кодирование байты безопасность
0

При регистрации в компьютерной системе каждому пользователю выдаётся

пароль, состоящий из 20 символов и содержащий только прописные символы

латинского алфавита (таких символов 26). В базе данных для хранения

сведений о каждом пользователе отведено одинаковое минимально

возможное целое число байт. При этом используют посимвольное

кодирование паролей, все символы кодируют одинаковым минимально

возможным количеством бит. Кроме собственно пароля для каждого

пользователя в системе хранятся дополнительные сведения, для чего

выделено целое число байт; одно и то же для всех пользователей.

Для хранения сведений о 20 пользователях потребовалось 500 байт. Сколько

байт выделено для хранения дополнительных сведений об одном

пользователе? В ответе запишите только целое число – количество байт.

avatar
задан 6 месяцев назад

3 Ответа

0

20 байт.

avatar
ответил 6 месяцев назад
0

Для хранения сведений о 20 пользователях было использовано 500 байт. Это означает, что на каждого пользователя в среднем было выделено 25 байт (500 байт / 20 пользователей = 25 байт на пользователя).

Известно, что на хранение пароля каждого пользователя требуется 20 символов, которые кодируются одинаковым минимально возможным количеством бит. Так как в пароле используются только прописные символы латинского алфавита (26 символов), то для кодирования каждого символа потребуется 5 бит (так как log2(26) ≈ 4.7, ближайшее целое число - 5 бит).

Итак, на хранение пароля одного пользователя потребуется 20 символов * 5 бит = 100 бит = 12.5 байт (поскольку 1 байт = 8 бит).

Таким образом, на хранение дополнительных сведений об одном пользователе было выделено 25 байт - 12.5 байт = 12.5 байт. Ответ: 12 байт.

avatar
ответил 6 месяцев назад
0

Для решения задачи начнём с определения количества бит, необходимых для кодирования одного символа пароля. Так как в пароле используются только прописные символы латинского алфавита (26 символов), минимальное количество бит, необходимое для кодирования одного символа, можно определить как минимальное ( k ), при котором ( 2^k \geq 26 ). Легко проверить, что ( k = 5 ) (так как ( 2^5 = 32 ) и это минимальная степень двойки, которая больше или равна 26).

Теперь рассчитаем, сколько бит требуется для хранения одного пароля: [ 20 \text{ символов} \times 5 \text{ бит на символ} = 100 \text{ бит} ] Так как 1 байт = 8 бит, количество байтов, необходимых для хранения одного пароля, равно: [ \frac{100 \text{ бит}}{8 \text{ бит на байт}} = 12.5 \text{ байта} ] Однако, так как количество байт должно быть целым числом, округлим 12.5 байта до ближайшего целого числа, которое делится нацело, что даст нам 16 байт (поскольку данные обычно выравниваются по границе байтов для оптимизации доступа к памяти).

Таким образом, каждый пароль занимает 16 байт. Теперь можно рассчитать общий объём памяти, выделенный для хранения паролей 20 пользователей: [ 16 \text{ байт на пользователя} \times 20 \text{ пользователей} = 320 \text{ байт} ]

Теперь вычтем из общего объёма памяти (500 байт) память, занятую паролями: [ 500 \text{ байт} - 320 \text{ байт} = 180 \text{ байт} ]

Таким образом, 180 байт выделено для хранения дополнительных сведений о всех 20 пользователях. Рассчитаем количество байт на одного пользователя: [ \frac{180 \text{ байт}}{20 \text{ пользователей}} = 9 \text{ байт} ]

Итак, для хранения дополнительных сведений об одном пользователе выделено 9 байт.

avatar
ответил 6 месяцев назад

Ваш ответ

Вопросы по теме