科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道AIX 程序设计大赛---AIX正方形问题

AIX 程序设计大赛---AIX正方形问题

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

本文将为大家介绍AIX 程序设计大赛---AIX正方形问题。

作者:成晓旭 来源:CSDN 2008年2月27日

关键字: 正方形 java AIX

  • 评论
  • 分享微博
  • 分享邮件

在本页阅读全文(共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领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章