- 60
- 0
- 约6.49千字
- 约 8页
- 2019-05-07 发布于江西
- 举报
八数码问题实验报告
实验要求:
九宫重排问题: 在3×3的井子九宫格棋盘上摆有8个牌,分别标有1-8个数码。棋盘上尚有一个空格,允许其周围的将牌向空格移动。这个通过移动将牌就可以变换将牌布局。现给定如下两种布局,一种为初始状态,一种为目标状态,问如何移动将牌,以将初始状态变换为目标状态?
实验思路:
A*算法
取g(n)=d(n),h(n)=w(n),其中w(n)表示以目标为基准,结点n的状态中不在位将牌的个数。由于从结点n转换成目标结点至少需要w(n)步,所以对任意n,恒有w(n) ≤h*(n)。
实验代码:
#includeiostream
#includestdio.h
#includetime.h
#includestdlib.h
#includemath.h
#define size 3
long total;
typedef char board[size][size];
board target = {1,2,3,8,0,4,7,6,5}; // 目标状态
class Node{
public:
board data; //存放状态
Node *parent; //存放父节点地址
Node *child[4]; //存放子节点地址,最多个
Node *next;
int f,h,g,how; //how中记录了其父节点如何移动生成该节点
Node();
您可能关注的文档
最近下载
- 高考数学十年(2016-2025)真题《导数及其应用解答题》专项分类汇编含答案.docx
- 43一造交通造价师案例分析清单预算定额全面组价案例.pdf
- 萧山艺术卷_2020萧山音乐卷(2).pdf VIP
- 综合安防平台(服务器)DS-VM21S-B系列用户手册.pdf VIP
- 《朝花夕拾》经典青少年文学读物.pdf VIP
- 在线网课学习课堂《人工智能(北理 )》单元测试考核答案.docx VIP
- 登高作业管理制度及作业票.docx VIP
- 欧贝尔仿真软件实验教学.docx VIP
- GB55030-2022《建筑与市政工程防水通用规范》主要内容.docx VIP
- 高考数学十年(2016-2025)真题《圆锥曲线(抛物线、位置关系等)》专项分类汇编.docx VIP
原创力文档

文档评论(0)