Скажем, у меня есть функция, которая генерирует случайные целые числа между скажем (1,10).
Затем я определяю (для цикла), который имеет 5 итераций.
Это (для цикла) вызывает функцию, определенную выше, а затем проверяет значение целого числа, сгенерированного функцией. В зависимости от значения целого числа определяется переменная «стоимость».
function integer = UniformInt(a, b)
integer = min( floor( rand()*(b-a) ) + a , b);
endfunction
for i=1:5
x(i) = UniformInt(1,10);
if (x(i)<90) then
cost(i) = 15;
elseif (90<=x(i) && x(i)<=110) then
cost(i) = 27;
else
cost(i) = 35;
end
end
Теперь, когда я запускаю это и нахожу x
, произнесем сгенерированные значения:
5.
9.
5.
2.
2.
Итак, различные значения cost
будут:
27.
35.
27.
15.
15.
Пока все это хорошо. Теперь, что я хочу сделать с этими результатами:
Проверьте, сколько раз появлялось каждое значение x
. Я могу сделать это с помощью функции tabul
Scilab:
- 1.
- 2.
- 2.
Теперь я действительно хочу закодировать:
x=9
появился только один раз, поэтому среднее значение cost
равно 35/1 = 35
.
x=5
появилось дважды, поэтому среднее значение cost
(27+27)/2 = 27
.
x=2
появилось дважды, поэтому среднее значение cost
составляет (15+15)/2 = 15
.
Как бы я это сделал?