Мне нужно выполнить две подпрограммы, одну с вероятностью p1, а другую с вероятностью p2 st p1 + p2 = 1, я решаю задачу следующими методами:
say p1=0.6, p2=0.4, i need to perform the selection between 2 subroutine 10 times
- Использовать функцию :
out = randsrc(1,10,[1,2;0.6,0.4]);
затем выберите подпрограмму 1, соответствующую 1 в выходной матрице, и подпрограмму 2, соответствующую 2 в выходной матрице
здесь я получаю вывод1: 2 1 2 2 1 2 1 2 1 1, выполняя опять выдает: 1 1 2 2 2 2 1 2 1
ожидаемый результат был номер 1, 6 раз и номер 2, 4 раза, но результат не такой, как ожидалось.
использовать функцию:
s = randsample([1,2],10,true,[0.6,0.4]);
использовать процедуру:
s=[];
for i=1:10
c = rand
if c<=0.6
select = 2;
else
select = 1;
end
s = [s,select];
end
метод 2 и 3 также дают результаты по методу 1, кто-нибудь может мне помочь выяснить причину? или интерпретировать результаты как то, как они следуют вероятности? или другой возможный способ решить эту проблему.