【问题标题】:The probability of an event occurring three times in a row, Matlab, Monte Carlo Method一个事件连续发生三次的概率,Matlab,蒙特卡罗方法
【发布时间】:2016-05-16 04:02:12
【问题描述】:
numtrials = 1000000
turkeychance= 0
for i = numtrials
    for b = 1:10
    r = rand(10,1);
    if r(b)<=.3143

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

【问题讨论】:

    标签: matlab combinations permutation probability montecarlo


    【解决方案1】:

    如果你定义

    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&gt;3) 计算有多少个,如果您只对是或否答案感兴趣,请使用any(Times)

    【讨论】:

      猜你喜欢
      • 2016-07-03
      • 2018-12-25
      • 1970-01-01
      • 2015-01-03
      • 2017-04-11
      • 1970-01-01
      • 2013-01-18
      • 1970-01-01
      • 2012-11-07
      相关资源
      最近更新 更多