Задание 11

Пример 1

При регистрации в компьютерной системе каждому объекту присваивается идентификатор, состоящий из 404 символов и содержащий только десятичные цифры и символы из 300-символьного специального алфавита. В базе данных для хранения каждого идентификатора отведено одинаковое и минимально возможное целое число байт. При этом используют посимвольное кодирование идентификаторов, все символы кодируют одинаковым и минимально возможным количеством бит.

Определите объём памяти (в Кбайт), необходимый для хранения 3072 идентификаторов. В ответе запишите только целое число — количество Кбайт.

Теория

Необходимо знать принципы кодирования текстовой информации и помнить степени числа 2, хотя бы до 212=4096, а также уметь переводить биты в байты, байты в килобайты и мегабайты, а также наоборот.

1 байт = 8 (23) бит
1 Кбайт = 1024 (210) байт = 213 бит
1 Мбайт = 1024 (210) Кбайт = 220 байт = 223 бит
1 Гбайт = 1024 (210) Мбайт = 220 Кбайт = 230 байт =233 бит
1 Пбайт = 1024 (210) Гбайт = 220 Мбайт = 230 Кбайт = 240 байт = 243 бит
1 Эбайт = 1024 (210) Пбайт = 220 Гбайт = 230 Мбайт = 240 Кбайт = 250 байт = 253 бит

Кодирование текстовой информации заключается в определении мощности алфавита (множества всех символов) и определение минимального числа бит - i (сколько бит позволяют закодировать алфавит из целого количества символов N, для этого решаем уравнение аналогичное уравнению при кодировании графической информации
11 задание демо 25 мощность алфавитаи находим i - должно быть целое число и 2i ≥ N, а 2i-1 N. Например = 80, тогда 26 < 80 ≤ 27 и i = 7 (для кодирования алфавита из 80 символов понадобится 7 бит). Далее умножаем число i на количество символов в идентификаторе или пароле и получаем необходимое количество бит для хранения текста. В задачах для хранения обычно отводится целое количество байт, поэтому полученное число разделите на 8 и результат округлите до ближайшего большего целого.

Решение

Пример 1

В данной задаче мощность алфавита (множество всех символов) равно 300 + 10 = 310. 28 < 310 ≤ 29. Получаем, что для кодирования 1 символа идентификатора необходимо 9 бит. Следовательно для кодирования всего идентификатора вычисляем 404 * 9 / 8 = 454,5 и округляем до большего целого = 455 байт (по условию задачи для хранения каждого идентификатора отведено одинаковое и минимально возможное целое число байт). Осталось вычислить 455 * 3072 / 1024 = 1365 Килобайт.  

Ответ

1365 (Время не более 2 минут)

Яндекс.Метрика