资源简介
一个java实现的A*算法来实现八数码,十五数码问题。启发函数为f(n)=d(n)+p(n)。本程序中八数码、十五数码均可计算,预先定义了初始状态和最终状态(可以根据需求改为控制台输入的)。
代码片段和文件信息
import java.util.Arrays;
public class FifteenDigitalNode implements Comparable{
private int Fn;//启发函数值
private int Hn;//Hn=Pn不在位状态到在位状态距离之和
private int Gn;//Gn=Dn 当前的深度
private int[][] nodeValue;//状态矩阵
private FifteenDigitalNode parent;//当前状态的父状态
public FifteenDigitalNode(int fn int hn int gn int[][] nodeValue) {
super();
Fn = fn;
Hn = hn;
Gn = gn;
this.nodeValue = nodeValue;
}
public int getFn() {
return Fn;
}
public int getHn() {
return Hn;
}
public int getGn() {
return Gn;
}
public int[][] getNodeValue() {
return nodeValue;
}
public void setFn() {
Fn = Hn+Gn;
}
public void setHn(int hn) {
Hn = hn;
}
public void setGn(int gn) {
Gn = gn;
}
public void setNodeValue(int[][] nodeValue) {
this.nodeValue = nodeValue;
}
public FifteenDigitalNode getParent() {
return parent;
}
public void setParent(FifteenDigitalNode parent) {
this.parent = parent;
}
@Override
public int compareTo(object o) {
// TODO Auto-generated method stub
FifteenDigitalNode fNode=(FifteenDigitalNode)o;
return this.Fn-fNode.getFn();
}
//判断当前状态是否是目标状态
public boolean isTarget(FifteenDigitalNode target){
return Arrays.equals(getNodeValue() target.getNodeValue());
}
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 301 2018-01-05 16:35 FifteenDigital2\.classpath
文件 391 2018-01-05 16:35 FifteenDigital2\.project
文件 598 2018-01-05 16:35 FifteenDigital2\.settings\org.eclipse.jdt.core.prefs
文件 1810 2018-01-06 15:32 FifteenDigital2\bin\FifteenDigitalNode.class
文件 3220 2018-01-10 10:49 FifteenDigital2\bin\Test.class
文件 3182 2018-01-10 10:42 FifteenDigital2\bin\Utils.class
文件 1347 2018-01-05 22:46 FifteenDigital2\src\FifteenDigitalNode.java
文件 2840 2018-01-10 10:49 FifteenDigital2\src\Test.java
文件 3463 2018-01-10 10:42 FifteenDigital2\src\Utils.java
目录 0 2018-01-11 20:03 FifteenDigital2\.settings
目录 0 2018-01-11 20:03 FifteenDigital2\bin
目录 0 2018-01-11 20:03 FifteenDigital2\src
目录 0 2018-01-11 20:03 FifteenDigital2
----------- --------- ---------- ----- ----
17152 13
相关资源
- java做的健身房预约系统
- Delphi7AES加密解密与JAVA互转默认128位
- java扫描线填充算法
- java 实现我的记事本
- java实现虚拟键盘
- JAVA多线程编程详解-详细操作(转自
- JAVA运用多线程实现碰撞的小球
- 使用JAVA编制时钟程序
- Java虚拟机视频.rar
- java串口监听所有驱动包
- java写的单位转换,包括长度,重量,
- Java并发编程实践 mobi
- kerberos java system
- 蓝桥杯历年真题解析视频讲解javaB组
- ZB转GB输入法
- JavaWeb答辩问题
- 计算机毕业实习报告java方面
- java在线升级代码
- java单例模式连接数据库源码
- Java程序入门日文版
- Java中基于UDP的图像传输与显示(Swi
- apriori算法java实现源代码
- JAva+sql的网上购书系统
- 学生课绩管理系统 - Java源码
-
eclipse-java-google-st
yle - java socket 简单成绩管理系统
- Android手机版Java五子棋源代码【源代码
- 《剑指Offer》题目及java代码实现
- Java版泡泡龙游戏(源代码)
- protobuf-2.5.0 exe文件
评论
共有 条评论