连续三次发生事件的概率,Matlab,蒙特卡罗方法

时间:2016-05-16 04:02:13

标签: matlab combinations permutation probability montecarlo

numtrials = 1000000
turkeychance= 0
for i = numtrials
    for b = 1:10
    r = rand(10,1);
    if r(b)<=.3143

我试图使用monte Carlo模拟方法连续三次查找事件发生在10个列表中的概率。我将进行100万次试验。事件发生的概率在任何时候都是31.43%。我想的是我会调用任何试验(b)并创建一个嵌套循环,所以如果条件一(rand值小于.3143)我将移动到下一个数字索引,如果该数字小于.3143,我将转到下一个数字。如果发生这种情况,我会给火鸡增加1点机会。当百万次试验完成后,我将火鸡场除以100万,以便连续三次获得事件发生的概率。我的问题是,如何检查事件是否连续发生三次?请原谅我,如果我没有提供足够的信息,我是编程的新手。

1 个答案:

答案 0 :(得分:0)

如果你定义

r = rand(10,1);

然后你不需要内部for循环。您可以使用

检测您的活动
events = r<0.3143;

你可以通过

找到连续3个或更多
Times = events;
Times(3:end) = Times(3:end) + events(2:end-1);
Times(3:end) = Times(3:end) + events(1:end-2);

请注意,在10次中,您可以连续多次执行3个事件。如果您只对是或否答案感兴趣,请使用sum(Times>3)来计算有多少人或any(Times)