正整数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的项的个数组成。
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的项的个数组成。
相关文章推荐
- 整数划分 --- 一个老生长谈的问题 动态规划
- 递归分治算法求解--整数划分问题
- hoj1402整数划分问题
- Openjudge7219 复杂的整数划分问题(dp)
- 整数划分问题之递归法
- 整数划分问题(苹果盘子问题)
- nyoj 571 整数划分 --- 一个老生长谈的问题:
- 递归 放苹果问题和整数划分问题
- 整数划分问题
- 整数划分问题(续)(非递归法)
- NYOJ--整数划分问题
- YTU.3131: 进阶递归之简单的整数划分问题
- [各种面试题] 整数划分问题
- 整数划分问题--DFS
- 整数划分问题
- Openjudge 百练 03:复杂的整数划分问题
- C语言之整数划分问题(递归法)实例代码
- 整数划分问题
- NYOJ 279 队花的烦恼二和NYOJ 176 整数划分(二)【dp问题或递归】
- NYOJ 651 Cut the rope(DP, 经典的整数划分问题)