Mikhailovich_Viktoriya
?>

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

Информатика

Ответы

kim-1971
Если рассматривать вариант, когда в буфере минимально возможным числом бит кодируется вся комбинация показаний, то решение во вложении, если "сжимается" каждое показание отдельно то так.
Показания датчика в диапазоне от 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 байт).
ashkiperova6
Var
  arr: array[1..27] of integer;
  summ: integer;
begin
  Randomize;
  for var i := 1 to 27 do
  begin
    arr[i] := random(-5, 5);
    summ := summ + arr[i];
  end;
  writeln('Массив: ',arr);
  writeln('Сумма всех элементов массива = ',summ);
  for var i := 1 to 27 do if arr[i] = 0 then arr[i] := summ;
  writeln('Массив: ',arr);
end.

пример работы:
Массив: [5,-1,1,5,4,-2,-3,0,3,5,-3,-4,3,0,-1,-4,5,-2,1,-4,5,2,-4,5,4,-5,-1]
Сумма всех элементов массива = 14
Массив: [5,-1,1,5,4,-2,-3,14,3,5,-3,-4,3,14,-1,-4,5,-2,1,-4,5,2,-4,5,4,-5,-1]

var
  arr: array of integer;
  n,k,m: integer;
begin
  write('Введи n: ');
  readln(n);
  Randomize;
  arr:= new integer[n];
  for var i := 0 to n-1 do arr[i] := random(-5, 5);
  writeln('Массив: ',arr);
  for var i := 0 to n-1 do
  begin
    if arr[i]<0 then inc(k);
    if (i>=1) and (i<=6) then inc(m);
    if (i>=6) and (arr[i]>=0) then arr[i]:=1;
  end;
  writeln('Количество отрицательных элементов массива = ',k);
  writeln('Количество элементов массива в интервале [2..7] = ',m);
  writeln('Массив: ',arr);
end.

Пример работы:
Введи n: 5
Массив: [0,1,-4,1,3]
Количество отрицательных элементов массива = 1
Количество элементов массива в интервале [2..7] = 4
Массив: [0,1,-4,1,3]

Введи n: 15
Массив: [0,1,4,3,-3,5,-4,-1,1,-2,3,1,-4,1,3]
Количество отрицательных элементов массива = 5
Количество элементов массива в интервале [2..7] = 6
Массив: [0,1,4,3,-3,5,-4,-1,1,-2,1,1,-4,1,1]
AkulovaAnastasiya
Точнее сказать - чем word отличается от программы Writer из пакета OpenOffice.
Word имеет больше функций. Это важно тем, кто много профессионально работает с текстами. Кстати, Word 2010 умеет сохранять в PDF.
Зато Writer может читать все форматы Word, а Word не может читать формат Writer - формат .odt.
Word - платный.
Если сравнивать OpenOffice с Word 2007 и выше, то они отличаются друг от друга совершенно разным расположением кнопочек и панелей. Если ты привык к Word, то тяжело привыкать к OpenOffice. И наоборот. Это я знаю по себе. Но это - дело привычки. Есть целые предприятия, которые перешли но OpenOffice.
Еще могу сказать, что Writer дольше запускается. Правда, потом работает без тормозов.
Вывод: нельзя сказать, какой лучше. Если для себя - то достаточно OpenOffice поставить, ибо он уже стабильный и по-честному бесплатный.

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

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