滚动两个骰子的可能性,一次......(MATLAB)

时间:2015-11-18 08:24:38

标签: matlab probability

找出你在一个掷骰子桌上用一卷两个骰子或蛇眼(两个)滚动七个的概率。指定将7转换为变量的概率 叫做probSeven。指定将两个滚动到一个名为的变量的概率 probSnakeEyes

  

这是我到目前为止的想法,但是我在编写一个随机的两个骰子时遇到了麻烦?还要找到蛇眼的概率可以检查roll1 ==1 && roll2==1是否有效?我只是抛出一些想法,我不确定什么是最有效的。 P.s Im有点困,所以可能会有一些语法错误。感谢您的帮助。

function P = diceroll(I,n)

%simulate n # of rolls

 if I = 7;

%first die

   for i = 1:6
%second die

      for j = 1:6

如果我想模拟滚动两个骰子(i和j),下面的代码是否有可能?我只熟悉在MATLAB中对roll one die进行编码。我该如何实施两个骰子?

dice = randi([1,6],[1,n]);

%probability of rolling a I=7 from two dice

% n = simulated roll of die once, 

 probSeven = m/n 

1 个答案:

答案 0 :(得分:2)

虽然这个问题很容易用代数方法解决,或者只考虑2个骰子的所有可能组合(只有36个)。如果你想通过数值模拟来做到这一点。

要掷两个骰子,我会生成一个带有randi的2 * n矩阵。例如randi(6, 2, n)

然后将两个骰子相加以获得每个骰子的分数,并找到给出你想要的分数的卷数。

重要的是要注意这种数值方法永远不会给出确切的答案,答案的准确性将取决于卷数。我会使用n = 1e4作为最小值,但调查结果如何随着n的变化收敛可能会很有意思(尽管记住再次运行相同数量的骰子可能会给出不同的答案,因为它是随机过程)。