[Сэкономленные байты]Петя сконструировал устройство, состоящее из датчика и памяти....

0 голосов
211 просмотров

[Сэкономленные байты]Петя сконструировал устройство, состоящее из датчика и памяти. Датчик снимает показания в диапазоне от 0 до 1.2 с точностью 0.1 и сохраняет в памяти каждое значение отдельно. В память можно записать только целое количество байт, поэтому каждое показание датчика занимает ровно 1 байт. Вася предложил добавить в устройство буфер, накапливающий Nпоказаний. Как только буфер полностью заполняется, получившаяся комбинация показаний кодируется минимально возможным количеством бит и записывается в память, занимая целое количество байт. При каком минимальном размере буфера, объем информации, записанный после его заполнения, окажется на 10 байт меньше, чем заняла бы запись такого же количества показаний при отсутствии буфера? В ответе укажите целое число – размер буфера, определенный как количество показаний датчика, которые можно в нем накопить.


Информатика (15 баллов) | 211 просмотров
Дан 1 ответ
0 голосов
Правильный ответ

Если рассматривать вариант, когда в буфере минимально возможным числом бит кодируется вся комбинация показаний, то решение во вложении, если "сжимается" каждое показание отдельно то так.
Показания датчика в диапазоне от A до B c шагом h. Могут принимать M значений.
M= \frac{A-B}{h}+1
В нашем случае:
M= \frac{1,2-0}{0,1}+1=13
Чтобы закодировать 13 комбинаций нам потребуется минимум
log_2(13) \approx 3,70 бит, округляя до ближайшего большего целого получим 4 бита. (Это половина байта. в байте 8 бит, если что :)
 Если буфер хранит N показаний. то для этого в сжатом варианте потребуется N/2 байт, в несжатом варианте N байт.
Исходя из условия получаем:
N- \frac{N}{2}=10
Разрешаем относительно N
N(1- \frac{1}{2} )=10
N=2 \cdot 10=20

Ответ: 20 показаний (или 20 байт).


Скачать вложение Adobe Acrobat (PDF)
(13.2k баллов)