Каждый сотрудник предприятия получает электронный пропуск, на котором записаны
личный код сотрудника, код подразделения и некоторая дополнительная информация.
Личный код состоит из 11 символов, каждый из которых может быть заглавной
латинской буквой (используется 15 различных букв) или одной из цифр от 0 до 9. Для
записи кода на пропуске отведено минимально возможное целое число байт. При этом
используют посимвольное кодирование, все символы кодируют одинаковым
минимально возможным количеством бит. Код подразделения состоит из 8 символов: в
каждой из пяти первых позиций стоит одна из 26 латинских букв, затем – три
десятичных цифры. Код подразделения записан на пропуске как двоичное число
(используется посимвольное кодирование) и занимает минимально возможное целое
число байт. Всего на пропуске хранится 30 байт данных. Сколько байт выделено для
хранения дополнительных сведений об одном сотруднике? В ответе запишите только
целое число – количество байт.
ответ
18 байт
Объяснение:
личный код имеет 14 символов кожен с которых может иметь 36 значений(26 значений букв и 10 цифр).
36 значений можно закодировать в 6 бит (2^6=64 - входит и значение 36)
Личный код имеет 14 символов значит
6 бит * 14 = 84бит=8.5байт
код подразделений имеет 8 значений 5 первых которые буквы от А до F (6 значений)
6 значений это 3 бита(2^3=8 - входит 6)
Код имеет 5 первых букв
5*3=15бит=1.9байт
И трьохзначное число по три значения кожное з которых может быть максимум 9
9 значений это 4 бита
таких значений есть 3
3*4=12бит=1.5байт
Сумируем 1.5+1.9+8.5=11.9≈12байт
30-12=18байт
Для личного кода сотрудника известно, что он состоит из 11 символов. Каждый символ может быть латинской буквой в верхнем регистре или цифрой от 0 до 9. Используется 15 различных букв.
Алфавит состоит из 26 латинских букв, поэтому число возможных символов для каждой позиции в коде подразделения составляет 26+10=36 (26 букв + 10 цифр).
Например, для кода подразделения количество возможных комбинаций для каждой позиции составляет 36^8, так как код подразделения состоит из 8 символов.
Количество байт для хранения данных на пропуске можно рассчитать по формуле: общее количество байт - количество байт для личного кода - количество байт для кода подразделения.
Из условия известно, что общее количество байт, выделенных для хранения данных на пропуске, составляет 30 байт.
Теперь рассмотрим количество байт, занимаемых личным кодом сотрудника. Для кодирования каждого символа используется минимально возможное количество бит. Символы букв можно закодировать с помощью 5-битового кода, а символы цифр - 4-битовым кодом.
Таким образом, количество байт, занимаемых личным кодом сотрудника, можно рассчитать следующим образом:
Личный код сотрудника: 11 символов
- 15 различных букв * 5 бит/символ для букв
- 10 различных цифр * 4 бит/символ для цифр
Таким образом, количество бит, занимаемых личным кодом сотрудника, составляет:
(15*5 + 10*4) бит/символ * 11 символов = 145 бит
Так как 8 бит = 1 байт, то количество байт, занимаемых личным кодом сотрудника, составляет:
145 бит / 8 бит/байт = 18.13 байт (округляем в большую сторону) = 19 байт
Теперь рассмотрим количество байт, занимаемых кодом подразделения. Для каждой позиции в коде подразделения существуют 36 возможных символов, которые необходимо закодировать.
Для записи кода подразделения используется двоичное число, поэтому количество возможных комбинаций для каждой позиции составляет 2^бит.
Чтобы найти количество бит, занимаемых кодом подразделения, нужно найти такое значение бит, при котором 2^бит >= 36.
2^бит = 36
бит = log2(36)
бит = 5.17 (округляем до ближайшего целого числа) = 6 бит
Таким образом, количество бит, занимаемых кодом подразделения, составляет: 6 бит/символ * 8 символов = 48 бит
Так как 8 бит = 1 байт, то количество байт, занимаемых кодом подразделения, составляет:
48 бит / 8 бит/байт = 6 байт
Теперь посчитаем количество байт для хранения дополнительной информации об одном сотруднике:
30 байт (общее количество байт) - 19 байт (количество байт, занимаемых личным кодом сотрудника) - 6 байт (количество байт, занимаемых кодом подразделения) = 5 байт.
Таким образом, для хранения дополнительных сведений об одном сотруднике выделено 5 байт.