排列组合中,放球问题的算法?

问题描述:

排列组合中,放球问题的算法?
设计一个算法用于解决下面的问题:
已知有n个相同的球,放到m个盒子中,要求第一个盒子最多放n1个球,第二个盒子最多放n2个球,……第m个盒子最多放nm个球(其中,1,2,…,m是下标),
(1)列出每种放法;
(2)对于(1)中的每种固定的放法,若这n个球是不同的,求出在该放法下,又有多少种不同的放法.

如果盒子不放球也算的话应该是(n1+1)(n2+1)(n3+1)……(nm+1)
举例我多加一个盒子这个盒子的方法数一定要乘以(n1+1)(n2+1)(n3+1)……(nm+1)不考虑极端情况,我希望找到一个球和盒子数都固定时,该问题的算法?这样吧分类法例如当n1=0时分n个球的方法数乘以当n1=1时分n-1个球的数……以此类推,如果是计数机解的可以用递归调用先谢谢了,但不是这么简单的排列。