您的位置:首页 > 其它

正整数n的划分问题

2013-11-06 15:36 295 查看
问题:将以正整数n表示成一系列正整数之和.

n=n1+n2+n3+...+nk (n1>=n2>=n3>=nk>=1, k>=1)

这就是正整数n的一个划分,正整数n不同的划分个数称为正整数n的划分数, 记作p(n)

例如:6 有如下11种划分则p(6)=11

6;

5+1;

4+2, 4+1+1;

3+3, 3+2+1, 3+1+1+1;

2+2+2, 2+2+1+1, 2+1+1+1+1;

1+1+1+1+1+1;

则求任意正整数的划分数p(n).

解决:在所有划分中,将最大加数n1不大于m的划分个数记作q(n, m).
算法描述及分析过程

在正整数的所有不同的划分中,将最大加数不大于的划分个数记作。可以建立的如下递归关系。
(1)q(n,1)=1,n>=1;

当最大加数n1不大于1时,任何正整数n只有一种划分形式。即n=1+1+1+..+1;
(2)q(n,m)=q(n,n),m>=n;
最大加数n1实际上不能大于n。
(3)q(n,n)=1+q(n,n-1);

正整数n的划分由n1=n的划分和n1<=n-1的划分组成。
(4)q(n,m)=q(n,m-1)+q(n-m,m)

正整数n最大加数n1不大于m的划分由n1=m的划分和n1<=m-1的划分组成。
其实这里是分为了两部分,一种是包含m,一种是不包含m,这种数目之和就是q(n,m)的化分数了。



以上的关系实际上给出了计算q(n,m)的递归式如下:



解释下第四种情况:
一种是n1=m,意味着项中必须要有m,

所以n1+(n-m)=n,这部分其实就是对n-m的划分,

另一部分是n1<=m-1,这部分不管有多少种划分,项中没有m。总的来说,n的划分就是有含有m的项和不含m的项的个数组成。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: