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

№ 5703

Ивашкова: Задача: В исследовательской лаборатории проводится наблюдение за солнечной активностью. Раз в год данные о наблюдениях записываются в базу данных с использованием минимально возможного целого числа байт. Первая часть данных включает в себя результат измерений, состоящий из 5-ти заглавных латинских букв (в латинском алфавите 26 символов). Вторая часть – год измерения (числа от 2000 до 2099 включительно). При этом используется посимвольное кодирование, каждый символ как результата, так и года, записывается с использованием минимально возможного числа бит. Сколько байтов требуется для хранения результатов всех измерений? Первая часть кодируется 25 битами (5 символов по 5 бит каждый) и вторая 16 битами (четыре цифры по 4 бита). Итого 41 бит или 6 байт на 1 результат наблюдений. На результаты всех измерений 6*100=600 байт. В ответе 500 байт? Почему? Что не так в решении?

Ответов - 29, стр: 1 2 All

inf_bu: Добрый вечер, это автор задачи. Почему вторая часть кодируется 16-ю битами? У вас точно известны два старших разряда года - 2 и 0, так зачем тратить на них по четыре бита на каждый, если они статичны, и никогда не меняются?

vin: inf_bu При регистрации в компьютерной системе каждому пользователю присваивается уникальный идентификатор, состоящий из 12 символов. Первым символом идентификатора является одна из 26-ти заглавных латинских букв, оставшиеся символы могут быть одной из 26-ти строчных латинских букв, либо десятичной цифрой. Для кодирования каждого идентификатора отведено одинаковое минимально возможное целое число байтов. Сколько байтов потребуется для хранения 100 идентификаторов? здравствуйте, может не понимаю условие, хотелось бы понять, что посимвольное кодирование 26+26+10=62 тогда 6 бит на символ. 9 байт на номер ответ 900? в ответах 800 (3 вариант Полякова)

inf_bu: vin пишет: здравствуйте, может не понимаю условие, хотелось бы понять, что посимвольное кодирование 26+26+10=62 тогда 6 бит на символ. 9 байт на номер ответ 900? в ответах 800 (3 вариант Полякова) Тут есть ответ. Задача другая, но смысл тот же http://egekp.unoforum.pro/?1-0-0-00000095-000-0-0-1668452593


Andreyka009: у меня получилось: 1 часть = 25 бит 2 часть = 7 бит(т.к. с 2000 до 2099 = 100 чисел = это меньше чем 2^7 => 7 бит на один номер года) в итоге 7+25 = 32 бита = 4 байта 4*100 = 400 что не так?

Кубай А.С.: Вопрос к автору задачи 5702 Здравствуйте! Проверьте, пожалуйста, ответ на задачу № 5702 (вариант 2 № 11). Цитата: "Идентификатор и дополнительные сведения хранятся отдельно, для хранения идентификатора используется минимально возможное количество битов. Для хранения информации о каждом пользователе в базе отведено одинаковое минимальное возможное целое число байт." Идентификатор занимает 60 бит, всего на пользователя 10 байт. Т.е. на доп.сведения отводится от 13 до 20 бит (т.к. при переводе в байты от 73 до 80 бит уже 10 байт). Ваш ответ 28 бит. 28 бит + 60 бит = 88 бит = 11 байт не равно 10 байт

Кубай А.С.: Вопрос к автору задачи 5703: Если символы статичны и никогда не меняются, то по формуле N=2**I при N=1 I=0 бит, а не 1 бит. Откуда вообще цифра 1? Понятно 4, понятно 0. Объясните, пожалуйста.

коллега: Вы критиковали авторов за невнятные формулировки задач.Но ваша самая ужасная

Ивашкова: Здравствуйте! Спасибо за подсказку.

ijulli123: У меня у одной складывается такое ощущение, что КИМ теперь проверяет не знание предмета, а умение угадать мысль автора задачи? Все этим "зачем тратить" и так далее - это больше относится к занимательным задачам для кружковой работы. А тут в условии четко сказано, что вводится номер года, и этот номер - число из 4 цифр, которые кодируются посимвольно. Да, можно хитроумно изобретать много способов это закодировать. Но это серьезный экзамен без права апелляции, а не КВН по предмету. И это задача для однозначного решения по формулам, а не задание на изобретательность - изобрести там много чего еще можно

s11kai: ijulli123 пишет: Но это серьезный экзамен без права апелляции, а не КВН по предмету. И это задача для однозначного решения по формулам, ... по формулам - т.е. по шаблону или трафарету? А кто, в таком случае, будет "двигать прогресс"?

Irirna70_13: Кубай А.С. пишет: Задача 5702. В условии не сказано, что минимально возможное целое число бит.

s11kai: Andreyka009 пишет: у меня получилось: 1 часть = 25 бит 2 часть = 7 бит(т.к. с 2000 до 2099 = 100 чисел = это меньше чем 2^7 => 7 бит на один номер года) в итоге 7+25 = 32 бита = 4 байта 4*100 = 400 что не так? 2 часть = 8 бит для кодирования двух чисел от 0 до 9 по 4 бита, поскольку в условии оговорено: Ивашкова пишет: При этом используется посимвольное кодирование, каждый символ как результата, так и года, записывается с использованием минимально возможного числа бит. в итоге 25 + 8 = 33 бита: 33/8 = 4,125 т.е 5 байт! 5*100 = 500 В условии есть один не совсем понятный момент: что принять за минимально возможное число бит для части 1 и части 2. Если подразумевается, что это число должно быть одинаково для обеих частей, то решение может быть таким: 25 + 10 = 35 бит. 35/8 = 4,375 т.е. 5 байт. Ответ: 500

s11kai: ijulli123 пишет: А тут в условии четко сказано, что вводится номер года Здесь вы не правы, там нет такого: вводится номер года Ивашкова пишет: Вторая часть – год измерения (числа от 2000 до 2099 включительно) Если внимательно посмотреть, то можно увидеть - там говорится о количестве измерений, которых ровно 100 и о том, что меняется только два последних числа, которые и необходимо кодировать!

artmem: s11kai пишет: Если внимательно посмотреть, то можно увидеть - там говорится о количестве измерений, которых ровно 100 и о том, что меняется только два последних числа, которые и необходимо кодировать! Очевидно, что в условии допущены грубые недосказанности, как про догадку про "кодирование двух последних цифр года", так и про то, что каждый символ кодируется одинаковым числом бит. И ваша трактовка не является однозначно верной. Следуя условию, можно запросто получить ответ 416 байт без каких-либо противоречий, применив неравномерное кодирование к двум последним цифрам года: [pre]bytes_count = 0 for i in range(0, 100): # Кодируем 5 букв по 5 бит на каждый символ bits_count = 5 * 5 # Кодируем 2 цифры числа bits_count += 4 if i % 10 <= 3 else 3 bits_count += 4 if i // 10 <= 3 else 3 bytes_count += (bits_count - 1) // 8 + 1 print(bytes_count) # 416 байт [/pre]

s11kai: artmem пишет: запросто получить ответ 416 байт без каких-либо противоречий, применив неравномерное кодирование к двум последним цифрам года На это могу сказать только одно, стоит перечитать условие, или указать автору задания на ваши противоречия



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