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

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