实际应用中简化的步骤
- 分析最优解的性质,并刻画其结构特征。
- 递归的定义最优解。
- 采用以自底向上或自顶向下的记忆化方式计算出最优值。
- 根据计算最优值时得到的信息,构造问题的最优解。
求解整数拆分的问题
【问题描述】求将正整数n无序拆分成最大数为k的拆分方案个数,这样的拆分称为n的k拆分。要求所有的拆分方案不重复。
例如:设n=5,k=5,对应的拆分方案有:
- 5=5
- 5=4+1
- 5=3+2
- 5=3+1+1
- 5=2+2+1
- 5=1+1+1+2
- 5=1+1+1+1+1
设f(n,k)为正整数n的k拆分的拆分方案的个数
(1)当n=1,k=1时。显然f(1,1)=1,即1=1一种拆分方案
(2)当n<k时
(3)当n=k时,两种情况:
1)将正整数n无序拆分成最大数为n-1的拆分方案,即n的n-1拆分
2)将n拆分成n个1的拆分方案,仅仅一种。