m个相同球放入n个不同盒子(每盒最多k个):求分配方法数的公式或DP方案?
相同球分配到不同盒子的计数问题(每个盒子最多k个球)
给定参数(m, n, k),需要计算将m个相同的球放入n个不同盒子中的分配方法数,要求每个盒子最多容纳k个球,最少可放0个球。
示例1:参数(4, 3, 2)
答案为6,具体分配方式如下:
| Box 1 | Box 2 | Box 3 |
|---|---|---|
| 2 | 2 | 0 |
| 2 | 0 | 2 |
| 0 | 2 | 2 |
| 2 | 1 | 1 |
| 1 | 2 | 1 |
| 1 | 1 | 2 |
解释:每行代表一种分配方式,比如第一行是Box1放2个球、Box2放2个球、Box3放0个球,所有有效分配方式共6种。
更多示例输入与结果
- (3, 3, 3) = 10
- (6, 4, 3) = 44
- (6, 4, 2) = 10
- (3, 3, 2) = 7
我的需求
我已经试过暴力枚举所有可能排列并去重的方法,现在想了解有没有能直接计算结果的数学公式,或者更高效的动态规划解法。
内容的提问来源于stack exchange,提问作者tyrion
相关产品推荐
相关产品推荐

