В школьной базе данных хранятся записи, содержащие информацию об учениках :<Фамилия>- 15...

0 голосов
180 просмотров

В школьной базе данных хранятся записи, содержащие информацию об учениках :<Фамилия>- 15 символов: русские буквы(первая прописная, остальные строчные)
<Имя>- 12 символов: русские буквы(первая прописная, остальные строчные)
<Отчество>- 15 символов: русские буквы(первая прописная, остальные строчные)
<Год рождения>- числа от 1992 до 1999
Каждое поле записывается с использованием минимально возможного кол-ва бит. Определить минимальное кол-во байт, необходимое для кодирования одной записи, если буквы е и ё считаются совпадающими.


Информатика (15 баллов) | 180 просмотров
Дан 1 ответ
0 голосов
Правильный ответ

Вообще говоря, сейчас не практикуется такое ужимание информации, разве что в супер ограниченной памяти, потому такие приемы не актуальны.

Для кодирования каждого символа алфавита нужно 5 бит (32 = 2^5)
Т.к. Е и Ё считаются совпадающими, то всего в алфавите 32 символа
Поскольку мы знаем, где расставленны прописные буквы, то теоретически их сохранять не обязательно, при выводе их можно подставить автоматически
Тогда для хранения имени + отчества + фамилии нужно (15 + 12 + 15) * 5 = 210 бит
Для года рождения есть 8 (с 1992 по 1999) вариантов, поэтому для него нужно отвести 3 бита (8 = 2^3)
Всего для одной записи требуется 210 + 3 = 213 бит = 26.625 байт ~= 27 байт

И если так дорого место, то я рекомендую дополнительно воспользоваться архиватором типа zip/rar

(55.0k баллов)