Скорее всего задание некорректное: так как не бывает отрицательных значение в диапазоне от 0(нуля) до 25. Предположим, что отрицательные значения элементов присутствуют, тогда как считать их вначале минимальными или делать противоположными а потом сравнивать. Ведь -25 и 25 разные значения по определению. Если в массиве не один минимальный элемент а два или более, какой индекс минимального элемента брать первый, последний или где-то в середине массива. На будущее пишите язык программирования, на котором необходимо реализовать программу.
Программа написана на Паскале. Ищется индекс первого минимального значения массива. Код замены отрицательных элементов массива и замены их на противоположные тоже включил. Но вначале считает значение элемента на минимум затем заменяет его на противоположный.
// // Написал GonanSoft // var da : array[1..10] of Integer; // da - DimensionalArray (одномерный массив) i : Integer; // Рабочая переменная цикла i_min : Integer; // индекс минимального элемента массива
//Заполняем элементы массива da десятью произвольными числами из диапазона от 0 до 25 Randomize; for i := 1 to 10 do begin da[i] := Random(26); end;
i_min := 1; // Изначально считаем значение первого элемента массива минимальным for i := 1 to 10 do begin // Выполняем поиск минимального элемента массива if (da[i]<da[i_min]) then begin i_min := i; end; //Заменяем все отрицательные элементы массива на противоположные if (da[i]<0) then begin da[i] := Abs(da[i]); end; end;
Целых чисел в диапазоне от 20 до 100 -- 81. Измерения записываются независимо друг от друга, то есть на каждое измерение приходится _фиксированное_целое_ количество бит. Чтобы вместить диапазон из 81 состояний, требуется хотя бы log_2(81) бит, округляя вверх до ближайшего целого, получаем: 7.
Соответственно, 80 измерений займут объём 7*80 = 560 бит = 70 байт. ответ: 70 байт.
--- P.S. В этой задаче можно сделать следующую ошибку. Можно по ошибке посчитать число: log2 (81^80) = 507.188..., и получить ответ 508. В этой задаче важно, что результат каждого измерения записывается отдельно
Программа написана на Паскале.
Ищется индекс первого минимального значения массива.
Код замены отрицательных элементов массива и замены их на противоположные тоже включил. Но вначале считает значение элемента на минимум затем заменяет его на противоположный.
//
// Написал GonanSoft
//
var
da : array[1..10] of Integer; // da - DimensionalArray (одномерный массив)
i : Integer; // Рабочая переменная цикла
i_min : Integer; // индекс минимального элемента массива
//Заполняем элементы массива da десятью произвольными числами из диапазона от 0 до 25
Randomize;
for i := 1 to 10 do
begin
da[i] := Random(26);
end;
i_min := 1; // Изначально считаем значение первого элемента массива минимальным
for i := 1 to 10 do
begin
// Выполняем поиск минимального элемента массива
if (da[i]<da[i_min]) then
begin
i_min := i;
end;
//Заменяем все отрицательные элементы массива на противоположные
if (da[i]<0) then
begin
da[i] := Abs(da[i]);
end;
end;
// Вывод результата
Writeln('Минимальный элемент массива ' + inttostr(da[i_min]));
Writeln('Индекс минимального элемента массива ' + inttostr(i_min));
//
Измерения записываются независимо друг от друга, то есть на каждое измерение приходится _фиксированное_целое_ количество бит.
Чтобы вместить диапазон из 81 состояний, требуется хотя бы log_2(81) бит, округляя вверх до ближайшего целого, получаем: 7.
Соответственно, 80 измерений займут объём 7*80 = 560 бит = 70 байт.
ответ: 70 байт.
---
P.S. В этой задаче можно сделать следующую ошибку.
Можно по ошибке посчитать число: log2 (81^80) = 507.188..., и получить ответ 508. В этой задаче важно, что результат каждого измерения записывается отдельно