8种球盒问题(111型)

n个球放到m个盒子中,球和盒子是否有区别,是否允许空盒?共有23=8种状态。

 

为了方便叙述,我们将有区别,有空盒,看做是显性的特性,用1表示,无区别,无空盒看做是非显性的特性,用0表示。

 

因此首先探讨第一种类型

111型(n个区别的球,放到n个区别空盒种,允许空盒的方案数),这个提法应该是我的原创,:)

求这个类型有很多种方法:

(1)从盒的角度上看

        第一个盒可以放0个,1个...n个球。同理,依次每个盒也如此。

        用指数型母函数:

        Ge(x)=(1+x+x2/2!+...++xn/n!)m

        其中x的n次方的系数即为所求。

        Ge(x)=emx=1+mx+m2x/2!+...+mnx/n!)

        因此方案数有mn种,使用指数型母函数的原因是盒内球的顺序照成的重复度要去掉。

        虽然这个问题没有必要这么求解,但下面会看到这个方法的普适性。

 

(2)从球的角度看

        令xi表示第i个盒,每个球可以选择去第一个盒,第二个盒。。。第n个盒。

       则(x1+x2+...+xm)n的系数和即为所求。

       令x1,x2,...xn均为1,则结果为mn

 

(3)看做是X和Y

        将球投进盒中,看作是X映射到Y种的一个函数,则投法相当于球这样的函数集的大小。

        球投在盒中,可以看做是一个球和一个盒发生了一次关系,但是区别在于,球一次只能投在一个盒中,但一个盒子可以有多个球投入。

        因此可以把球看做是自变量,盒看做是应变量。

        球1可以和m个盒发生关系(m种可能),球2也是如此。因此总共的可能是mn种可能。

 

(4)用字符串模型来解释

        将n个球看做是长度为n的字符串(字符串的位置不同,因此自然的表示了n个不同的球),而盒看做是字符,全部的盒号看做是一个字符集。例如2个球,投入到3个盒子中,3个盒子用A,B,C表示,则全部的投入方案可以表示为:

        AA 【2个球都投入到A中】

        AB

        AC

        BA

        BB

        BC

        CA

        CB

        CC

        注意,这里AB和BA是两种方案,前者表示第一个球投入在A中,第二个球投入在B中,后者表示第一个球投入在B中,第二个球在A中。则字符串第一位可以有m种取法,第二位也是m种,用乘法法则,共计有mn种。

 

该问题的一个应用:

      求找到一个hash函数且无碰撞的概率,这里待存储的key看做是球,key存放的位置看做是盒号。

      球的数目为n,盒的数目为m,有上面可知,这样的hash函数的种类有mn种。

      不冲突的hash函数的种类有(m)(m-1)(m-2)...(m-n+1)=m!/(m-n)!。

      则找到这样一个函数的概率是m!/(mn*(m-n)!)。

 

111型可以看做是X集到Y集映射的全部函数集的大小。

 

       

后续博客:

8种球盒问题(111型)
http://blog.csdn.net/pennyliang/archive/2010/04/05/5452576.aspx

8种球盒问题(101型)
http://blog.csdn.net/pennyliang/archive/2010/04/06/5456033.aspx

8种球盒问题(110型,100型)
http://blog.csdn.net/pennyliang/archive/2010/04/05/5452741.aspx

8种球盒问题(011型)
http://blog.csdn.net/pennyliang/archive/2010/04/10/5471206.aspx

8种球盒问题(010型) 

http://blog.csdn.net/pennyliang/archive/2010/04/24/5524572.aspx 

8种球盒问题(001型,000型) 

http://blog.csdn.net/pennyliang/archive/2010/05/05/5561071.aspx

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值