📋 Условие
При регистрации в компьютерной системе каждому пользователю выдаётся пароль, состоящий из 10 символов. В качестве символов используются прописные и строчные буквы латинского алфавита.
🔍 Подробное решение
При регистрации в компьютерной системе каждому пользователю выдаётся пароль, состоящий из 10 символов. В качестве символов используются прописные и строчные буквы латинского алфавита, всего 52 различных символа. В базе данных для хранения каждого пароля отведено одинаковое и минимально возможное целое число байт. При этом используется посимвольное кодирование паролей, все символы кодируются одинаковым и минимально возможным количеством бит. Определите объём памяти (в Кбайтах), необходимый для хранения данных о 65 536 пользователях.
Решение:
Шаг 1: Определяем количество бит на символ.
- 52 символа → минимальное количество бит: log₂(52) ≈ 5.7 → округляем вверх → 6 бит
Шаг 2: Определяем количество байт на пароль.
- 10 символов × 6 бит = 60 бит
- 60 бит / 8 = 7.5 байт → округляем вверх → 8 байт
Шаг 3: Определяем объём памяти для 65536 пользователей.
- 65536 × 8 байт = 524288 байт
- 524288 / 1024 = 512 Кбайт
Ответ: 512
Дополнительные задачи: 2850, 7, 46, 261, 110, 66, 9
Решение:
Шаг 1: Определяем количество бит на символ.
- 52 символа → минимальное количество бит: log₂(52) ≈ 5.7 → округляем вверх → 6 бит
Шаг 2: Определяем количество байт на пароль.
- 10 символов × 6 бит = 60 бит
- 60 бит / 8 = 7.5 байт → округляем вверх → 8 байт
Шаг 3: Определяем объём памяти для 65536 пользователей.
- 65536 × 8 байт = 524288 байт
- 524288 / 1024 = 512 Кбайт
Ответ: 512
Дополнительные задачи: 2850, 7, 46, 261, 110, 66, 9
📚 Теория
Информационный объём. Формулы расчёта веса символов и текста.
🐍 Шаблон Python
Python
from math import *
for n in range(1, 2158 + 1):
i = ceil(log2(n))
ves = ceil((i * 377) / 8)
if 23155 * ves > 5536 * 1024:
print(n)
break