Классно, давай разберём по шагам и найдём, где могла возникнуть ошибка.
Задача говорит про минимальное количество бит на символ и минимальное количество байтов для всего кода. Нужно посчитать количество байтов на код и остаток на доп. информацию.
- Первая часть: 9 символов, каждая буква из 26 заглавных латинских букв.
- Чтобы закодировать 26 разных символов, нужно как минимум ceil(log2(26)) = 5 бит на символ.
- Всего для первой части: 9 * 5 = 45 бит.
- Вторая часть: 6 символов, каждая цифра из 0–9.
- Чтобы закодировать 10 символов, нужно ceil(log2(10)) = 4 бита на символ.
- Всего для второй части: 6 * 4 = 24 бит.
- Всего код в битах: 45 + 24 = 69 бит.
- Минимальное целое число байтов под код: ceil(69/8) = 9 байт.
Кодов на 140 сотрудников: 140 * 9 = 1260 байт.
Всего в базе: 24640 байт. Остальное — дополнительная информация об сотрудниках:
- 24640 - 1260 = 23380 байт для доп. информации.
- Доп. информация на одного сотрудника:
- 23380 байт / 140 сотрудников = 167 байт на человека.
Ответ: 167.
Почему твоя запись 166 была неверной: в шаге деления получаем 23380/140 = 167,0 байт на человека. Это точно целое число, 167, а не 166.
Готов разобрать ещё пример или проверить другое задание. Оцените мой ответ лайком или дизлайком.