把n个相同的数分成m堆有多少种方法?

如题所述

把n个相同的物体,分成m堆,每堆至少有一个(一般的理解是每堆至少有一个)。

这有2种情形,取决于m堆是否相同。你的题目里,n个数是相同的,不用区分,但没有指明m堆是否相同,是否需要区分。我分别回答一下这2种情形。

第1种理解:m堆不同时,这个比较简单。
n个相同的物体排成一排,中间有n-1个放挡板的位置。我们要放m-1个挡板,挡板不能相邻。所以就是从n-1个位置中,挑出m-1个。
于是方法数就是:C(n-1,m-1)
其中C(a,b)代表从a个物体中,选b个的组合数

第2种理解:m堆相同时,这个是整数拆分问题,相当于把正整数n拆分成m个数的和。
没有公式,只能用递推。
设S(n,m)是n个物体,分成m堆的方法数。递推公式是:
S(n,m) = S(n-1,m-1) + S(n-m,m)
我解释一下这个递推公式。
n个物体分为m堆,有2种可能:有一堆只有1个物体;任何一堆都至少有2个物体。
如果是第1种情形:有一堆只有1个物体。那么把这一堆去掉,剩下的就是n-1个物体,放到了m-1堆里。于是就是递推的第1项:S(n-1,m-1)。
如果是第2种情形:每一堆都至少有2个物体。那么每一堆都拿掉一个物体,剩下的就是n-m个物体,放到了m堆。于是就是递推的第2项:S(n-m,m)。
就是这样。
递推的初始值:S(n,1)=1,S(n,n)=1,
当n<m时,S(n,m)=0。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-09-19
C(n-1,m-1)/P(m,m)
第2个回答  2015-09-19
M的N次方追答

求采纳

第3个回答  2015-09-19
,。。。题不对吧