- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
2010-06-23
缩略显示
转:递归解整数分划问题
文章分类:Java编程
1. 递归算法解题步骤 (1) 分析问题、寻找递归关系。找出大规模问题和小规模问题的关系。 (2) 找出停止条件,控制递归。 (3) 设计函数、确定参数。
2. 问题描述: ?? 整数的分划问题。 ?? 如,对于正整数n=6,可以分划为: ?? 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+1 ?? 现在的问题是,对于给定的正整数n,编写算法计算出其分划得数目。
3. 问题分析和递归关系建立 ?? 从上面n=6的实际例子可以看出,很难找到大规模问题P(n)和小规模问题P(n-d)(d=1或2或3...)的关系。 根据n=6的实例发现第一行及以后的数据不超过6,第二行及以后的数据不超过5...,第六行的数据不超过1。 ?? 因此,定义一个函数Q(n,m),表示整数n的任何加数都不超过m的分划得数目,n的所有分划数目P(n)就应该 表示为Q(n,n). ?? 一般地,Q(n,m)有以下递归关系: ?? (1) Q(n,n) = 1+Q(n,n-1); ?? (2) Q(n,m) = Q(n,m-1) + Q(n-m,m) (mn) ?????? Q(n,m-1)表示被加数中不包含m的分划数目; ??????? Q(n-m,m) 表式被加数中包含m的分划数目。
4. java实现:
/**
* @version v1.0
*
*/
public class IntegerDivision {
/**
* @param args
*/
public static void main(String[] args) {
IntegerDivision id = new IntegerDivision(6);
int count = id.divInteger(id.getN(), id.getN());
System.out.println(count);
}
private int n;
public IntegerDivision(int _n) {
n = _n;
}
/**
* 递归求解
*
* @param n
* @param m
* @return
*/
public int divInteger(int n, int m) {
if (n 1 || m 1) {
System.out.println(输出参数错误!);
} else if (n == 1 || m == 1) {
return 1;
} else if (n m) {
return divInteger(n, n);
} else if (n == m) {
return divInteger(n, n - 1) + 1;
} else {
return divInteger(n, m - 1) + divInteger(n - m, m);
}
return 0;
}
public int getN() {
return n;
}
public void setN(int n) {
this.n = n;
}
}
运行:
11
?
11:36
浏览 (18)
评论 (0)
分类: JAVA_J2EE
2010-02-24
缩略显示
[转] Struts1和Struts2的区别和对比
文章分类:Java编程
Struts1和Struts2的区别和对比:Action 类: ? Struts1要求Action类继承一个抽象基类。Struts1的一个普遍问题是使用抽象类编程而不是接口。 ? Struts 2 Action类可以实现一个Action接口,也可实现其他接口,使可选和定制的服务成为可能。Struts2提供一个ActionSupport基类去 实现 常用的接口。Action接口不是必须的,任何有execute标识的POJO对象都可以用作Struts2的Action对象。 线程模式: ? Struts1 Action是单例模式并且必须是线程安全的,因为仅有Action的一个实例来处理所有的请求。单例策略限制了Struts1 Action能作的事,并且要在开发时特别小心。Action资源必须是线程安全的或同步的。 ? Struts2 Action对象为每一个请求产生一个实例,因此没有线程安全问题。(实际上,servl
您可能关注的文档
最近下载
- 基坑支护内支撑梁拆除施工方案.docx VIP
- 最新人教版一年级上册《数学游戏》课件(整套)教学PPT(2024年秋-新教材).pptx VIP
- 最新人教版一年级数学上册《数学游戏》教学课件(整套)PPT(2024秋-新教材).pptx VIP
- GBT6058-2005 纤维缠绕压力容器制备和内压试验方法.pdf
- GB╱T 23711.1-2009 氟塑料衬里压力容器电火花试验方法.pdf
- 7m焦炉推焦车的结构特征.pdf
- 研发领料单模板.docx VIP
- 辽宁省技工学校审批表.doc VIP
- GB 26501--2011 氟塑料衬里压力容器 通用技术条件.pdf
- 施工放样报验单.doc VIP
文档评论(0)