您的位置:首页 > 其它

抽奖,a概率0.2,b概率0.3,a,b都至少有一个的期望

2014-12-24 16:47 344 查看
这也是我在读完算法导论后遇到的一个题目。

很感激算法导论第三版,第75页提到的礼券收集者问题。不然这道题,我真不一定做得出来。

我确信这个东西是我的原创。

问题是这样的:

你去开游戏的箱子,开出A概率0.2,开出B概率0.3,啥都没有的概率0.5。

1.开出A和B(都至少1个,
AB合计算一套装备)的数学期望是多少次?

2.如果至少x个A和y个B(x>0,y>0),期望又是多少? 

3.如果A+B至少是z个,期望又是多少? 

---------------------------下面是解答过程-----------------------------------

我们把1看作2的一种特殊情况,然后来杀2,3两道题。

先来考虑个元问题:如果你去抽奖,抽中的概率是0.2,那么你抽中一次的次数期望是多少?答案很明显是1/0.2 = 5。。。如果不服,自己用极限推一下,正好最终极限化简下来的形式就是这么简单。。

如果想要x个A,y个B那么,考虑,一个简单模型就是A的概率是0.4,B的概率是0.6,,比如我们如果求出来这个模型的期望是E,那么,由于A和B一共只占有0.2+0.3 = 0.5的可能性,也就是有0.5的几率是浪费了,所以,原题的结果就是E/(0.5) = 2*E.

现在我们倒回去:简单模型就是A的概率是0.4,B的概率是0.6。要 x个A和y个B,那么,可以用动态规划:

假定DP(X,Y)表示至少有X个A和Y个B的期望。。。那么考虑下一步,如果是A,概率是0.4,整个变成 (1+ DP(X-1,Y))..如果是B,概率是0.6,整个变成(1+DP(X,Y-1))。。

合并得到 DP(X,Y) = 0.4*(1+DP(X-1,Y))+0.6*(1+DP(X,Y-1))。。而且如果X=0时,DP(0,Y)应该是Y/0.6,   Y=0时,DP(X,0)应该是X/0.4。。。。DP(0,0)是0。。动态规划成立了,用计算机算一下,时间复杂度是O(X*Y),抱歉我没有推出通项公式;

考虑回来结果就是2*DP(X,Y)..

比如第一问。

DP(1,1) = [ 0.4*(1+DP(0,1))+0.6*(1+DP(1,0))]/(0.2+0.3) = [0.4*(1+1/0.6)+0.6*(1+1/0.4)] /(0.2+0.3)=19/3 

第三问:

A+B至少有Z个,这个啊,很简单,把A.B考虑成一体,这样,就是上面提到的元问题,结果就是z/(0.2+0.3) = 2*z

--------------------脑洞大开系列---------------------

脑洞大开,如果有A,B,C该怎么办,A是0.1,B是0.2,C是0.7。。。需要它们各自至少一个。。。那么 

很简单,像第二问的解答一样,先固定A,假定第一个是A,那么之后BC求出来,固定B,AC求出来,固定C,AB求出来。。。然后通过 类似DP(X,Y) = 0.4*(1+DP(X-1,Y))+0.6*(1+DP(X,Y-1))的带权值整合的形式,搞一搞就行了。一个递归而已。。。如果A,B,C,D,那么先固定A,求BCD,固定B求ACD。。。等等一层层递归下来就可以。。。当然把AB以及CD分别看作一个整体是不行的。。。这种LogN归并会出现偏差。。。暂时没想到好办法。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐