废话少说了,原题集出处:http://blog.csdn.net/hackbuteer1/article/details/6902917
题目: 一个骰子,6面,1个面是 1, 2个面是2, 3个面是3, 问平均掷多少次能使1、2、3都至少出现一次。
方法: 面对面试概率题几乎屡试不爽的分叉树递归列方程法。
这是一个求数学期望的问题,最终是求1,2,3出现至少一次的最短长度的期望。
这样分叉树的每个节点是一个期望状态,而每个分叉是一次投掷结果。将后续期望出现1、2、3各至少一次的情形记作L123(即题目所求),将后续期望出现1、2各至少一次(3无关)情形记作L12,而1至少一次(2,3无关)情形L1,其余数值符号类推,则树结构如下(列出4级结构已经足够):
第一级(树根) | 第二级 | 第三级 | 第四级别 |
L123 | 掷1->L23 | 掷1->L23 | 同状态 |
掷2->L3 | 根据投掷结果,或继续期待L3,或已经达到目标 | ||
掷3->L2 | 根据投掷结果,或继续期待L2,或已经达到目标 | ||
掷2->L13 | 掷1->L3 | 根据投掷结果,或继续期待L3,或已经达到目标 | |
掷2->L13 | 同状态 | ||
掷3->L1 | 根据投掷结果,或继续期待L1,或已经达到目标 | ||
掷3->L12 | 掷1->L2 | 根据投掷结果,或继续期待L2,或已经达到目标 | |
掷2->L1 | 根据投掷结果,或继续期待L1,或已经达到目标 | ||
掷3->L12 | 同状态 |
接下来,就是要排出方程,因为一共7个未知数,如果排出7个线性方程就能解决问题。
这方程组里的未知数对应上述的状态,而其数值则是一个对长度(投掷次数)的数学期望。
根据这个树状结构和其中的递归关系,这个方程组就是:
L123 = p1 (L23+ 1) + p2 (L13+