myRand:
Сначала в myRand
плохая практика - использовать size
в качестве имени переменной, поскольку это уже функция в Matlab.
Во-вторых, вы можете сгенерировать все 100 переменных за один раз с помощью
randsample(X,100,true,P)
В-третьих, вы должны принять число переменных в качестве аргумента myRand(number)
Ввсего:
function [result]=myRand(number)
%generate a sample with size = number
X = [1 2 3 4 5 6];
P = [1/6 1/6 1/6 1/6 1/6 1/6];
result=randsample(X,number,true,P);
myRand
теперь вернет number
повторений броска кубика.
Имитация:
Относительно вашего simulate
функция, то вы повторяете myRand
сто раз.В вашей версии myRand
сгенерируйте сотню случайных величин.Другими словами, вы просите сто переменных сто раз.
Таким образом, вы должны сделать выбор, если myRand
сгенерирует 100 переменных, или вы должны вызывать его 100 раз (где он равен 1 ввремя).Как правило, быстрее генерировать все сразу.
Таким образом, ваш simulate
теперь:
function simulate()
% simulate trowing dice
n=100; % playing dice 100 times
throw_dice = myRand(n); %Ask for n rolls
%*************
%Insert code to count even rolls.
%*************
В качестве альтернативы:
function simulate()
% simulate trowing dice
n=100; % playing dice 100 times
even_rolls = 0;
for i = 1:n %Roll the die n times
throw_dice = myRand(1); %Ask for 1 number
%*************
%Insert code to count even rolls.
%*************
end