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

№ 5860 корректно ли сформулировано условие?

ijulli123: Здравствуйте! Ставлю себя на место экзаменуемого. И пытаюсь вникнуть: а) номера письма от 0 до 527 040; б) класса – 15 букв латинского алфавита (регистр имеет значение); в) 2023-значного кода, который состоит только из 0 и 1. При этом используется посимвольное кодирование идентификаторов, все части идентификаторов кодируются минимально возможным количеством бит. " У меня невольно возникает вопрос: Если используется посимвольное кодирование ИДЕНТИФИКАТОРОВ - именно идентификаторов, а не отдельных их частей, следовательно, и номер должен кодироваться посимвольно. То есть как 6 цифр, каждая отдельно. Либо номер все же кодируется как число, но тогда фраза про посимвольное кодирование идентификатора (а не отдельной его части!) на мой взгляд собьет с толку. Причем, на результат округления до мегабайт это не влияет. Но хотелось бы более четких формулировок. Тем более, что такие вопросы вызывает не только эта задача.

Ответов - 8

ЕленаФом: У меня ответ не сходится. 1. Номер письма 2^19 < 527041 < 2^20 - надо 20 бит. 2. Буква класса, разные регистры - 15*2=30 букв - надо 5 бит ( 30 <= 2^5). 3. Двоичный код из 2023 бит - надо 2023 бит. Итого надо 20 + 5 + 2023 = 2048 бит для кодирования = 2^11 бит = 2^8 байт / 1 письмо 4. За год поступает писем 60 (за час) * 24 (часа) * 365 (дней) 5. Нужен объем памяти V = 60*24*365 * 2^8 / (2^20) = 128,3 MB Как ни округляй, 134 MB из ответа не получается!

ЕленаФом: Если же считать по полным байтам для каждой группы, то 1. Номер письма 20 бит - 3 полных байта 2. Буква класса 5 бит - 1 байт 3. 2023 битный двоичный код - 2023 бита - 253 байта Итого: 3 + 1 + 253 = 257 байт на письмо. 4. 60 * 24 * 365* 257 байт / (2^20) = 128,8 MB. Ответ не сходится.

ЕленаФом: Согласна с автором темы и прошу авторов задач обратить внимание, что условие задачи на экзамене не должно допускать двоякого толкования. И таких задач, 11-х по крайней мере, не так уж мало в базе данных. А школьникам ПОСТУПАТЬ в ВУЗы. И без права апелляции.


Поляков: Коллеги, спасибо за замечания. Автор уточнил условие.

ЕленаФом: # 7-5860 Дед Мороз """ (Д. Статный) Каждую минуту на почту Деду Морозу поступают сообщения с пожеланиями о подарках (точкой отсчёта времени считать начало года, точкой конца отсчёта – конец года). При регистрации каждому письму присваивается идентификатор, состоящий из трёх частей: А) номера письма от 0 до 527 040; Б) класса – 15 букв латинского алфавита (регистр имеет значение); В) 2023-значного кода, который состоит только из 0 и 1. Для частей Б и В идентификатора используется посимвольное кодирование, все три части по отдельности кодируются минимально возможным количеством бит. Сколько Мбайт свободного места нужно иметь Деду Морозу, чтобы сохранить все письма, присланные за год (365 дней)? ответ 134 ----------------------- A - 2**19 < 527 041 <= 2**20 - 20 бит / 8 = 2/5 -> 3 байта Б - лат.алфавит 26*2 символа <= 2**6 - по 6 бит на символ лат.алфавита - 15*6 = 90 бит -> 90/8 = 12 байт В - 2023 бит код - 2023 бит / 8 = 252.875 -> 253 байт А - 3 байта Б - 12 байт В - 253 байт V = (3+12+253) * 365 * 24 * 60 / 2**20 print(V," MB") # 134.3353 MB => 135 MБ Ответ не сходится на 1 MB, у авторов 134 MB. Где ошибка?

ЕленаФом: Если же в части Б кодировать КАЖДЫЙ символ (6 бит) как 1 байт ("посимвольное кодирование"), ответ будет еще больше: на часть Б надо будет не 12 байт, а 15 байт (15 символов).

Дмитрий Статный: Здравствуйте! Вы вычисляете для каждого идентификатора объём в Байтах, в которых он сможет поместиться, чего не сказано в условии задания, из-за этого и возникает ошибка. Привожу своё решение: А) 20 бит Б) 15*6 = 90 бит В) 2023 бита. Суммарно идентификатор занимает 2023+90+20 = 2133 бита. Далее находим количество минут в году: 365*24*60. Умножаем их (это наше общее количество идентификаторов) на место, которое занимает 1 id, и делим на 2**23, чтобы перевести в МБ. Получаем число, большее 133, но меньшее 134. => Деду Морозу понадобится 134 МБайта свободной памяти.

ЕленаФом: Спасибо большое за ответ! Мысли вдогонку... сбивает в формулировке слово "по отдельности", откуда кажется что каждая часть А,Б,В хранится ОТДЕЛЬНО (надо пересчитать ее в байты), а не сумму битов трех частей (2133 бита) -> байты для одного id. Фраза "Для частей Б и В идентификатора используется посимвольное кодирование, все три части ПО ОТДЕЛЬНОСТИ кодируются минимально возможным количеством бит." Формулировка нечеткая, когда возникают такие вопросы (не у одного человека). А сама задача действительно хорошая! Может не мучить ребят и уточнить задание? Формулировки Е.Джобса или С.Полякова на похожие задания ощутимо точнее описаны. Мои ученики в этой задаче МАССОВО ошиблись, неправильно поняв задание. В вашей формулировке еще головная боль возникает при выборе алфавита латинских букв, то ли брать их 26*2 = 52, то ли 15*2 = 30? (в смысле, другие не встречаются...)



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