扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
在本页阅读全文(共3页)
AixContest源码:

/** *//*******************************************************************************
* <<AIX 程序设计大赛---AIX正方形问题>>
* AIXContest ver1.0
* 开发作者: 成晓旭
* 项目简述: AIX程序设计的Java程序设计"AIX正方形问题"解决方案
* 启动时间: 2004年01月14日 20:00:00
* 完成时间: 2003年01月14日 23:16:00<3个晚上>
*
* 开发环境: Windows2000 Professional + SUN J2SE1.4.2
* 开发工具: Rational Rose2002 Enterprise + JCreator2.5Pro
*
* 文件名称: AixContest.java
* 简 介: 正方形问题的客户调用处理类,抽象正方形问题的应用层
*
* 备 注: <本系统的应用层抽象>
*
* 修改时间1:
*
* [问题描述]:
* 任意给定一个正方形,将正方形的各边做n等分,并将相应各点连接成水平
* 或垂直的直线,如果从正方形的左下角(0,0)出发,沿各边线或连接线,
* 自左向右或自下而上的方向,到达正方形的右上角(n,n),
* 请用JAVA程序计算并输出所有可能的路径总数和具体线路.
* 请提供相关JAVA源程序和n=2,3,4时的输出结果。输出结果按以下方式:
* 以n=1为例:
* n = 1
* Path1: (0,0) - (0,1) - (1,1)
* Path2: (0,0) - (1,0) - (1,1)
* Total = 2
*
* [解答思路]:
* 此问题的核心是一个"有向无环图"的遍历问题,
* 解答的思想就是一个"试探"与"回溯"算法的抽象与实现.甚至比完整的
* "有向无环图"的遍历问题还要简单.
*
* [建模提示]:
* 为了简化问题的处理过程,强调解决问题的实质性思路,在建模过程中,
* 对遍历过程中每步"前进"的步长进行了"固定步长为1"的假设,即对将被
* n等分的正方形的边长,自动设置为n,以简化算法中对边的计算处理.
*
* [算法优化]:
* 目前设计的算法有以下几处有待优化:
* 1:此题是一般的"试探"与"回溯"算法一个特例,所以有些处理过程是可以省略的
* (目前实现的是一个标准的"试探"与"回溯"算法)
* 2:由于题目自身的特殊性,对某些处理过程可做简化,以提高算法的执行效率
* (如:对进栈,出栈的处理,对访问队列的处理,对在正方形边上"前进"时的
* 回溯处理,对临界条件,到达目标点条件的判断等等)
* 3:问题的本身及解答此题的思路是很具一般性的,但目前分析,设计的类结构过于特殊化.
******************************************************************************/
package CXXSoft.Aix;
import java.awt.Point;
import CXXSoft.Aix.AixSquare;
public class AixContest
...{
public static void main(String[] arg)
...{
System.out.println("AIX知识大赛初赛Java程序设计---AIX正方形问题");
AixSquare asProblem = new AixSquare();
String str="";
for(int i=1;i<=3;i++)
...{
asProblem.setProblemCondition(i,AixSquare.FIRST_MOVE_AHEAD);
asProblem.solveProblemNew();
str += asProblem + " ";
}
System.out.println(str);
System.out.println(" AIX正方形问题---运行结束......");
}
}如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。