zoukankan      html  css  js  c++  java
  • 面试中的概率题-数学期望(1)

    问题描述:

    有一个木桶,里面有M个白球,小明每分钟从桶中随机取出一个球涂成红色(无论白或红都涂红)再放回,问小明将桶中球全部涂红的期望时间是多少?

    分析过程:

    数学期望类的题目,主要是要理解什么是数学期望,数学期望是干什么用的,关于这些问题的解答,大家可以自己去理解,思考或者翻书,我要讲的内容是如何利用这些数学期望的特点。

    数学期望的递归特性:

    飞行棋大家都玩过吧,应该知道每次抛到6,就有一架飞机可以出门了,那么问你一架飞机可以出门的时候,抛筛子次数的数学期望是多少?

    你估计会毫不犹豫的说是6(P=1/6,E=1/P=6),但是你思考过深一层次的原因吗?

    好吧,我来告诉你,我们记抛6的期望次数是E,如果第一次抛的是6,那么就是1次,概率是1/6;如果第一次不是6呢,那么次数是1+E,概率为5/6;

    那么 E = 1 * (1/6) + (1+E) * (5/6),你可以很容易的解出 E = 6

    上面加粗的红色字体用的就是类似一个递归的概念,希望你能理解吧,不行的话,那只能自己去努力理解了,呵呵。

    现在我们开始解答上面的问题:

    令P[i]代表M个球中已经有i个球是红色后,还需要的时间期望,去将所有球都变成红色。

    So,给出递归式:P[i]= (i/M) * P[i] + (1-i/M)* P[i+1] + 1

    我相信大家都能理解这个公式的含义,不过还是解释一下,在P[i]的情况下,我们选一次球,如果是红球,那么概率是i/M,子问题还是P[i],如果是白球,那么概率是1-i/M,子问题是P[i+1],注意你当前的选球操作要计算在内,即一次

    化简如上递归式得:P[i] = P[i+1] + M/(M-i),显然P[M] = 0;

    所以:

    P[M-1] = P[M] + M/1

    P[M-2] = P[M-1] + M/2

    P[0] = P[1] + M/M

    综上:P[0] = 0 + M/1 + M/2 + … + M/M,至此问题已经解决,不过我希望大家学到的不是这个答案,而是分析这个题目的过程


    最终答案:

    0 + M/1 + M/2 + M/3 + … + M/M

  • 相关阅读:
    HorizontalScrollView水平滚动控件
    编解码学习笔记(十):Ogg系列
    449A
    要点Java17 String
    struts2复习(五)拦截器总结
    java的wait和notifyAll使用方法
    centos网速特别慢的最佳解决的方法
    一年成为Emacs高手(像神一样使用编辑器)
    c++ 操作注冊表
    python 多线程编程
  • 原文地址:https://www.cnblogs.com/lakeone/p/5155649.html
Copyright © 2011-2022 走看看