n通过添加一些小于或等于 的数字来考虑所有的结果方式m。正如你所说,我们称之为p(n,m). 例如,p(7,3)=8,因为有 8 种方法可以使小于 3 的数字变成 7,如下所示:(为简单起见,我们可以假设始终按从大到小的顺序添加数字)
- 3+3+1
- 3+2+2
- 3+2+1+1
- 3+1+1+1+1
- 2+2+2+1
- 2+2+1+1+1
- 2+1+1+1+1+1
- 1+1+1+1+1+1+1
现在我们可以将这些组合分成两组:
第一个元素等于m(在我们的示例中为=3:)的组合
- 3+3+1
- 3+2+2
- 3+2+1+1
- 3+1+1+1+1
第一个元素小于 的组合m:
- 2+2+2+1
- 2+2+1+1+1
- 2+1+1+1+1+1
- 1+1+1+1+1+1+1
因为组合的每个成员p(n,m)要么在 Group1 中,要么在 Group2 中,我们可以说p(n,m)=size(Group1) + size(Group2). 现在,如果我们证明这一点size(Group1)=p(n-m, m)并size(Group2)=p(n,m-1)通过替换我们达到p(n,m)=p(n-m,m)+p(n,m-1)
证明size(Group1)=p(n-m, m):
根据上述定义,是通过添加一些小于或等于 的数p(n-m, m)得出的结果的数量。n-mm
- 如果您附加
m到 的每个组合p(n-m, m),它将导致 Group1 的成员。所以p(n-m, m) <= size(Group1)
- 如果您删除
mGroup1 的每个成员中的第一个,它将导致p(n-m, m). 所以size(Group1) <= p(n-m, m)
=> size(Group1) = p(n-m, m). 在我们的示例中:
Group1 <===对应===> p(4, 3) :
- 7=3+
3+1<===========> 3+1=4
- 7=3+
2+2<===========> 2+2=4
- 7=3+
2+1+1<=======> 2+1+1=4
- 7=3+
1+1+1+1<===> 1+1+1+1=4
p(n-m,m)所以和 Group1 的任何成员都是一一对应的,它们的大小是相等的。
证明size(Group2)=p(n, m-1):
根据定义,p(n,m-1)是n通过添加一些小于或等于m-1(小于m)的数字而得到的结果的数量。如果你重新阅读 Group2 的定义,你会发现这两个定义是相同的。=> size(Group2) = p(n, m-1)