放球问题
来源:互联网 发布:现金赌博软件手机软件 编辑:程序博客网 时间:2024/06/09 19:52
放球问题
最近准备组合数学考试,看到关于放球问题的几种情况,花了一个小时最终理清楚了这些问题,内容主要涉及如下:
- n个无差别的球分发在k个无区别的盒子中(没有空盒)放法方式数为?
- n个无差别的球分发在k个有区别的盒子中(没有空盒)放法方式数为?
- n个有差别的球分发在k个有区别的盒子中(没有空盒)放法方式数为?
- n个有差别的球分发在k个无区别的盒子中(没有空盒)放法方式数为?
以上问题均简称做(XXX-XXX)如第一问为:无差别-无区别
无差别-无区别
n个一样球放入k个一样的盒子,类似将整数n拆分成k个数的和的方式数。举个例子:
3个球放入2个盒子 —— 3=?+?
即:盒子可以这样放{1,2}{3,0},容易知这个问题实际就是加法拆分的问题。而关于假发拆分组合数学的原理可以这样解决:
该式利用了由Ferrers图的对偶律即拆分成K项相当于最大值为K的拆分。但是,如果要求非空则要考虑去掉上式左端的每个括号中的‘1’项。
无差别-有区别
这个问题可以等效成求方程
有差别-无区别
想一想,这个问题不就是说这些不同球要分成k堆,这些堆之间没有顺序,唯一不同的是这些堆成员由哪些组成吗?于是,问题可以等效于n个元素拆分成k个不相交子集的问题,解为S_2(n,k)。这里利用第二类Stirling数
该解的证明在组合数学教材有详细证明这里不在给出。
有差别-有区别
思路一 :
相当于每个球每次有k中选择,于是这个问题的解是
|A1¯⋂A2¯…⋂Ak¯|=|S|−∑|Ai|+∑|Ai⋂Aj|+…(−1)m|A1⋂Ak|
于是最终解化简为:
思路二:
可以把问题分两步进行,第一步将球放入无区分的球,然后再将这些盒子进行编号。对于第一步等同于上一个“有差别-无区分”问题,第二步全排列。于是最终结果:
阅读全文
0 0
- 放球问题
- 盒子放球问题
- 【证明】放球问题
- 放球问题
- uva10943(球放盒子问题)
- 放球问题的研究
- 放球问题的组合数 总结
- 组合数学之放球问题 【附斯特林数】
- 放苹果问题
- 运放问题
- 放苹果问题
- 放鸡蛋问题
- 放苹果问题
- <实例>放苹果问题
- 北大-放苹果问题
- 取放棋子问题
- 放苹果 问题
- 放鸡蛋问题
- 剑30-最小的K个数
- es6 javascript中的class理解
- Fragment显示问题
- Xshell实现Windows上传文件到Linux主机
- C++异常处理
- 放球问题
- 替换空格问题
- 二分搜索
- 更改MYSQL的ROOT用户的密码
- java中常用的日志框架-logback和log4j
- python2和python3 在windows7环境下安装
- 对文件进行哈夫曼编码压缩与译码的C++实现 以及压缩率计算 ——HIT杨朔
- java 异常处理
- Android开发之初试MPAndroidChart