Форум » Вычисление количества информации » №4136 » Ответить

№4136

miory-tyan: (А. Богданов) При регистрации в компьютерной системе на каждого сотрудника заводится запись из двух полей: идентификатор и биометрия лица. Идентификатор состоит из семи эмодзи, каждый из которых закодирован в виде трех шестнадцатеричных цифр из диапазона U+1Fххх Unicode символов. Биометрия лица представлена десятью десятичными трехзначными числами. В базе данных для хранения каждого поля отведено минимально возможное целое число байт. При этом используют посимвольное кодирование полей. Все символы (или числа) поля кодируют одинаковым и минимально возможным количеством бит. Определите объём памяти (в Кбайт), необходимый для хранения 256 записей. В ответе запишите только целое число – количество Кбайт. У меня не сошелся ответ. Видимо, что-то не доглядела в условии задачи. Не могли бы вы помочь с решение?

Ответов - 7

Поляков: Показывайте ваше решение.

miory-tyan: Пока писала сюда, кое-что исправила в своем решении и ответ стал ближе. Но все-равно очень сомневаюсь в правильности моего понимания. Если используется посимвольное кодирование: K (идентификатора) = 21 (7 по 3) символ N = 16, i = 4 бит, I = 84 бит=11 Б (здесь не понимаю, что значит указанный диапазон U+1Fххх Unicode, не значит ли это что надо 16 бит на символ брать?) К (биометрии) = 30 (10 по 3) символов N = 10, i = 4 бит, I = 120 бит = 15 Б Всего I = 26 Б (для одной записи) I = (26*256)/1024=6,5 Кб

gornostaeva: Мне кажется в решении есть ошибки, но так как в ответе нужно записать целое число, то ответ 6 все равно правильный. miory-tyan пишет: K (идентификатора) = 21 (7 по 3) символ N = 16, i = 4 бит, I = 84 бит=11 Б miory-tyan пишет: Все символы (или числа) поля кодируют одинаковым и минимально возможным количеством бит. 3 шестнадцатеричных цифры кодируют один символ, то есть 16^3 варианта = 2^12 вариантов, i = 12 бит. 12*7=84 бита=11 байт miory-tyan пишет: К (биометрии) = 30 (10 по 3) символов N = 10, i = 4 бит, I = 120 бит = 15 Б Десятичное трехзначное число дает 1000 вариантов - i = 10 бит. 10*10=100 бит = 13 байт 13+11=24 байта 24*256/1024=6 Кбайт Константин, резюмируйте, пожалуйста.


Danov: Моё решение: ### var emz := 3*4; // бит на один эмодзи var id := (emz*7/8).Ceil; // байт на идентификатор var num := log2(1000).Ceil; // бит на одно "десятичное трехзначное число" var bio := (num*10/8).Ceil; // байт на биометрию var V := (id + bio)*256; // байт на запись * кол-во = объем print($'{V} байт или {V/1024} КБайт'); // 6144 ,байта или ровно 6 КБайт

miory-tyan: То есть в биометрии кодируются не символы, а числа? Трехзначных чисел - 900 шт. N = 900, i =10 бит. I = 10 * 10 = 100 бит = 13 Б I (общее)= 13+11 = 24 Б I (256) = (256*24)/1024 = 6 КБ Я правильно поняла?

Danov: Да, правильно. В биометрии кодируются именно тройки чисел (100...999). Согласен, что немного непривычно, но тренировочные задачи как раз и способствуют инсайтам для более глубокого понимания темы. Надеюсь, что ФИПИ не будет выводить на экзамен задачи с подобной неоднозначной интерпретацией.

miory-tyan: Для тренировки - самое то ! Всем огромное спасибо за помощь!



полная версия страницы