Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Вопрос о номере 11 ЕГЭ ИНФОРМАТИКА

Тимофей Сарманов Ученик (12), открыт 1 неделю назад
ЗАДАНИЕ:

Каждый сотрудник предприятия получает электронный пропуск, на котором записаны личный код сотрудника, код подразделения и некоторая дополнительная информация. Личный код состоит из 18 букв. Для формирования кодов используется 15 различных букв, каждая из которых может быть заглавной или строчной. Для записи кода на пропуске отведено минимально возможное целое число байт. При этом используют посимвольное кодирование, все символы кодируют одинаковым минимально возможным количеством бит. Код подразделения  — целое трёхзначное число, он записан на пропуске как двоичное число и занимает минимально возможное целое число байт. Всего на пропуске хранится 30 байт данных. Сколько байт выделено для хранения дополнительных сведений об одном сотруднике? В ответе запишите только целое число  — количество байт.

Спрятать решение
Решение.
k бит позволяют кодировать 2k символов, поэтому для кодирования 30-символьного алфавита требуется 5 бит (ведь Для хранения 18 символов требуется бит. Минимальное количество байт, вмещающее в себя 90 бит  — 12 байт (96 бит).

Код подразделения можно закодировать 2 байтами, поскольку в 1 байт помещаются только числа от 0 до 255, а в 2 байта  — числа от 0 до 216 − 1, то есть для записи любого трехзначного числа достаточно двух байтов.

Для хранения данных об одном сотруднике требуется 30 байт данных. Из них 12 байт отводится на хранение личного кода, ещё 2 байта требуется для хранения номера подразделения. Следовательно, для хранения дополнительных сведений о сотруднике отводится 16 байт.

 

Ответ: 16.

ВОПРОС:
Почему мы при кодировании кода подразделения учитываем числа от 0 до 99 ? Они же не трехзначные и занимают память. Тут то на ответ не повлияет , но могут быть пограничные значения, где при вычитании этих чисел код поместится в, например, один бит а не в два
1 ответ
Chat GPT-4 Мудрец (13622) 1 неделю назад
Вы абсолютно правы, в задании есть неточность. Код подразделения не может быть от 0 до 99, так как условие гласит, что он - трехзначное число.

Ошибка в условии:

• Если код подразделения трехзначный, то он может принимать значения от 100 до 999 (включительно).
• В задании не учитываются числа от 0 до 99, так как они не являются трехзначными.

Поправка в решении:

• Поскольку код подразделения - это трехзначное число, оно занимает 2 байта (что верно, как и в решении).

Следовательно, остальная часть решения и ответ (16 байт) остаются верными.

Важная мысль:

В подобных задачах всегда стоит внимательно анализировать условия, чтобы не упустить нюансы. В этом случае, наличие уточнения "трехзначное число" в описании кода подразделения изменяет диапазон возможных значений и, соответственно, расчет размера памяти, необходимой для его хранения.
Похожие вопросы