码迷,mamicode.com
首页 > 其他好文 > 详细

[概率]m个球扔到n个盒子

时间:2015-06-07 09:31:55      阅读:107      评论:0      收藏:0      [点我收藏+]

标签:数学   概率   

问题描述

有m个球,要扔到n个盒子里。其中每个球都是互相独立地扔。问最后平均有几个盒子是有球的?

问题解析

这类问题是较为纯粹的数学问题,当然也可以用计算机精确地求出答案。

方案一:编程解决

  • p(m, i):表示前 m 个球,扔到 n 个盒子里,共占用了 i 个盒子的概率
    于是 p(m, i) = p(m-1, i) * (i/n) + p(m-1, i-1) * (n-i+1)/n
    p(m, i) = 0, if i <= 0 || i > m || i > n

于是可以就可以根据上述式子编程解决,复杂度是 O(m^2)

方案二:数学分析

  • p(m): 表示前 m 个球放到 n 个盒子里,其平均占用的盒子数量 (注意:这里是期望数量)
    p(m) = (p(m-1)/n) * p(m-1) + (1 - (p(m-1)/n ) * (p(m-1) + 1)
    上述式子的意义在于,当求 p(m) 时,可以认为第 m 个球恰好落在前 m-1 个球所在的某个盒子中,概率为 p(m-1) / n;或者是第 m 个球落在一个空的盒子中,概率是 1-p(m-1)/n

化简得到: p(m) = 1 + (n-1)/n * p(m-1).
进一步: p(m) - n = (n-1)/n * ( p(m-1) - n)
进一步: p(m) - n = ( (n-1)/n ) ^ m * (-n)
于是: p(m) = n - n * ( (n-1)/n )^m.
当 m 比较大的时候,( (n-1)/n ) ^ m 趋近于 e ^ (-m/n)。当 m=n 时,有 p(m) = n - n / e,意味着此时,平均空盒子数为 n/e 。

方案三:数学分析

还有一种更为巧妙的数学分析。
每个球,不落在特定盒子的概率是 (n-1)/n (这个显然了吧,一个球不落在2号盒子的概率当然是 (n-1)/n )。于是 m 个球,都不落在特定的盒子的概率是 ( (n-1)/n ) ^ m。这句话可以换个角度理解:对于一个盒子,m 个球都不落在该盒子中的概率是 ( (n-1)/n ) ^ m。
因此,对于 n 个盒子,平均空盒子数量为 n * ( (n-1)/n ) ^ m。这个与上面分析结果一致。

[概率]m个球扔到n个盒子

标签:数学   概率   

原文地址:http://blog.csdn.net/nisxiya/article/details/46397861

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!