Matlab概率循环

时间:2015-01-27 16:48:58

标签: matlab

我有一个关于使用for循环计算概率的问题。

示例:

一个游戏节目有70个数字,其中20个被绘制,11个是正确数字的最大数量(并且给予最高奖金)。

现在,我想将每个结果的概率作为向量来表示,它从for循环得到它的输入。 我的概率知识有点生疏,所以原谅任何错误。

到目前为止我尝试过:

K = 11;
format long;
p = zeros(1,K+1) %my vector

for i = 0:K
p(i+1) = 1/nchoosek(70,i+1)
end
sum(p)

但是,如果A =" win",则不考虑A的补码。我想要实现的目标: 我在索引上升时纠正数字的概率,例如:

p(1)=" 0正确的数字"

p(2)=" 1正确的数字"

p(K + 1)=" 11个正确的数字"

我遇到的问题是让for循环正确分配p(1),同时还有其他正确的。是否可以使用1循环,如果是,如何?

由于

1 个答案:

答案 0 :(得分:0)

看起来你的概率计算需要改变。例如,当你计算p(1)来表示0个正确的猜测时,你只需要1 / nchoosek(1,0)。这并不代表您想要的可能性。我相信你想要的是每次从分母中挑选20张牌的总方式(nchoosek(70,20))。实际上,您应该将其分配给循环外的某个值:

    event_space= nchoosek(70,20);

如果没有正确的卡片,您需要找出可以选择所有错误的卡片的方式(总共59张中的20张)。这将是nchoosek(59,20)。

然后,你的概率将是:

    p(0) = nchoosek(59,20)/event_space

可以选择不同数量的正确数字进行类似的计算(对于1个正确,你选择了19个错误的卡而不是20个,但是你有11个可能正确的卡......它变得棘手!)。我想正确的计算可以按照你的方式放入一个循环,虽然0情况可能是一个应该在循环外完成的特殊情况。

(如果我的概率也生锈了,请有人纠正我!)。