游戏开发论坛

 找回密码
 立即注册
搜索
查看: 1945|回复: 0

[讨论] 把球放到瓶子问题合集

[复制链接]

11

主题

903

帖子

914

积分

高级会员

Rank: 4

积分
914
发表于 2009-9-9 11:14:00 | 显示全部楼层 |阅读模式
从一个朋友处得来的,总结得很全面。

——————————————————————————————————————————————————————

概率中的数数问题绝大多数都可以归结为把球放到瓶子里的过程,下面我们就看看把球放到瓶子里有多少种放法。参考:Enumerative Combinatorics, Volume 1, Richard Stanley

首先,球可以分成可被区分和不可被区分两种情况,瓶子也可以被分成可被区分和不可以被区分两种情况,而放球的方法,则可以分成没有限制条件,每个瓶子至少一个球和每个瓶子最多一个球这三种情况,所以整体来说,总共有12种情况。下面就这12中情况,进行分别讨论。

设定,球有b个,瓶子有u个。

1、球可区分,瓶子可区分,没有限制条件

这个比较简单,u的b次方

2、球可区分,瓶子可区分,每个瓶子里最多一个球

如果,b>u,无解

b<=u,u(u-1)(u-2)...(u-b+1)

3、球不可分,瓶子可分,每个瓶子最多一个球

如果,b>u,无解

如果b<=u,则C(u,b)

4、球不可区分,瓶子可区分,每个瓶子至少一个球

如果,b<u,无解

如果,b>=u

这种情况可以看成b个球中间放u-1个隔板,b中间的间隔有b-1个间隔,则方法有C(b-1,u-1)

5、球不可区分,瓶子可区分,没有限制

这种情况比较烦,但是在放好球之后,我们可以在每个瓶子中再放一个球,这就转化成了情况4,由于球不可分,所以这是放球的方法是一样的。即C(b+u-1,u-1)=C(b+u-1,b)

6、球可区分,瓶子不可区分,每个瓶子至少一个球

b<u,无解

b>=u,这种情况比较复杂,先把结果记为S(b,u)。当放最后一个球的时候,有两种情况:一、u个瓶子里至少有一个球了,则前面放球的方法有S(b-1,u),而最后一个球则可以放到任何一个瓶子里,则一共有uS(b-1,u)种放球的方法;二、还有一个空瓶子(不可能有更多空瓶子了),则前面放球的方法有S(b-1,u-1)。所以综合两种情况,S(b,u)=uS(b-1,u)+S(b-1,u-1)。这种情况没有更简化的形式,可以写个递归的程序算一下。

7、球可区分,瓶子可区分,每个瓶子至少一个球

b<u,无解

b>=u,这种情况的结果是u!S(b,u),可以先认为是情况6,然后在把瓶子可区分的条件加上去。

8、球可区分,瓶子不可区分,没有限制

如果有u'个瓶子装了球,则可看成S(b,u'),由于瓶子不可区分,取多少个瓶子情况只有一种,则整体的放球方法有:S(b,1)+S(b,2)+...+S(b,u)。

9、球可区分,瓶子不可区分,每个瓶子最多一个球

b>u,无解

b<=u,1

10、球不可区分,瓶子不可区分,每个瓶子最多一个球

b>u,无解

b<=u,1

11、球不可区分,瓶子不可区分,每个瓶子至少一个球

b<u,无解

b>=u,这种情况也比较复杂,先把结果记为p(b,u)。在放最后一个球之前,有两种情况:一、一个瓶子是空的,则前面放球的方法有p(b-1,u-1);二、每个瓶子里至少一个球,但是放完最后一个球之后,每个瓶子里至少两个球,不然会与第一种情况相重,所以第二种情况有p(b-u,u)中放球的方法。总体可得p(b,u)=p(b-1,u-1)+p(b-u,u)。

12、球不可分,瓶子不可分,没有限制

参照情况8,可得p(b,1)+p(b,2)+...+p(b,u)。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-8-6 04:51

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表