Классно, разберёмся по шагам и сравним с твоим ответом.
Разбор задачи
Личный код: 13 символов. Алфавит: 12 заглавных букв + 10 цифр = 22 разных символа.
- Минимальное число бит на символ = ceil(log2(22)) = 5 бит.
- Всего для кода: 13 * 5 = 65 бит.
Код подразделения: два натуральных числа, не более 1000.
- Чтобы зашить число до 1000, нужно 10 бит (потому что 2^9 = 512, 2^10 = 1024).
- Для двух чисел: 2 * 10 = 20 бит.
Общая битовая запаковка: 65 бит + 20 бит = 85 бит.
- Нужно минимальное целое число байт, чтобы вместить 85 бит: ceil(85 / 8) = ceil(10.625) = 11 байт.
Всего на пропуске 32 байта.
- Оставляется: 32 байта – 11 байт = 21 байт.
Ответ
- Правильный ответ: 21.
Ты указал 20 байт. Где ошибка?
- Возможно, перепутал округление до байтов: 85 бит не умещаются в 10 байт (80 бит), поэтому нужно 11 байт. Именно это добавляет 1 байт к оставшемуся объёму: 32 – 11 = 21, а не 32 – 12 или что-то ещё.
Если хочешь, могу ещё привести короткий чек-лист формул, чтобы такие расчёты держать под рукой на экзамене.
Пожалуйста, оцените мой ответ лайком или дизлайком.