下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、v1.0可编辑可修改八数码问题详解(用bfs实现)八数码问题也称为九宫问题。在3X3的棋盘,摆有八个棋子,每个棋子上标有1至8的某一数字,不同棋子上标的数字不相同。棋盘上还有一个空格,与空格相邻的棋子可以移到空格中。要求解决的问题是:给出一个初始状态和一个目标状态,找出一种从初始转变成目标状态的移动棋子步数最少的移动步骤。所谓问题的一个状态就是棋子在棋盘上的一种摆法。棋子移动后,状态就会发生改变。解八数码问题实际上就是找出从初始状态到达目标状态所经过的一系列中间过渡状态。如图:对这道题用bfs解决个人认为是个不错的方法,首先因为它有九个格子,那么便可以用state数组记录他的的九个格子的数值,
2、其中空格为0,后者由于它只有九个数,因此共有9!=362880种可能性,用bfs解决较快。下面给出bfs实现的三种代码(这里的三种指的是对是否访问过已知节点的三种判断方法):1.8这样的数据,0作为判断依据简单于用数据作为判断依据if(si=0)break;x=i/3;y=i%3;z=i;/用hash避免同一状态的再次访问在讲这种方法之前建议读者先看一下算法导论中有关hash的介绍为了方便自己以后看的时候方便,先写一下有关hash的内容Hash表解决冲突三种hash函数:first:除法散列函数:h(k)=kmodm(m为所选的余数,最好选接近装载因子a=n/m,但又远离2的k次哥的质数)se
3、cond:乘法散列法函数:看图:具体代码实现下面有介绍third:全域散列函数h(k)=(ak+b)modp)modm(p>m且p和m都为质数)-1)/2;for(i=num=0;i<le;i+)num=num*10+si;k=(longlong)num;ss=(longlong)(A*(1LL<<w);r0=k*ss%(1LL<<w);ans=r0>>(w-p);returnans;.8这样的数据,0作为判断依据简单于用数据作为判断依据if(si=0)break;x=i/3;y=i%3;z=i;-1)/2;for(i=num=0;i<le
4、;i+)num=num*10+si;k=(longlong)num;ss=(longlong)(A*(1LL<<w);r0=k*ss%(1LL<<w);ans=r0>>(w-p);returnans;.8这样的数据,0作为判断依据简单于用数据作为判断依据if(si=0)break;x=i/3;y=i%3;z=i;stl集合避免重复访问同一状态.8这样的数据,0作为判断依据简单于用数据作为判断依据if(si=0)break;x=i/3;y=i%3;z=i;/记录空的格子的行标,列表,和所在位置,这里的位置按照从左到右从上到下依次递增for(i=0;i<4
5、;i+)/按照上,下,左,右四个方向进行搜索nx=x+deri0;ny=y+deri1;nz=nx*3+ny;if(nx>=0&&nx<3&&ny>=0&&ny<3)state&t=strear;memcpy(&t,&s,sizeof(s); /记录此时的状态即九个格子的数值tz=snz;tnz=sz;disrear=disfront+1;if(try_to_insert(rear)/判断strear这种状态是否已经出现过rear+;front+;return0;intmain(void)intncase,i,oj;scanf("%d",&ncase);while(ncase-)memset(head,0,sizeof(head);for(i=0;i<le;i+)scanf("%d”,&st1i);/按从左到右从上到下的顺序存储数据for(i=0;i<le;i+)scanf("%d",&am
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年企业人力资源管理师之一级人力资源管理师考试题库500道附参考答案【研优卷】
- 2026年长垣烹饪职业技术学院单招职业技能考试参考题库附答案详解
- 2026年石家庄人民医学高等专科学校单招职业技能考试模拟试题附答案详解
- 2025年福建农业职业技术学院单招职业适应性测试模拟测试卷附答案
- 2026陕西省公务员考试常识判断专项练习题附答案
- 2026年四川国际标榜职业学院单招综合素质笔试模拟试题附答案详解
- 2026年苏州信息职业技术学院单招综合素质考试备考题库附答案详解
- 古典名著《水浒传》练习题100道及完整答案【网校专用】
- 2026年书记员考试题库100道附完整答案(历年真题)
- 2026年书记员考试题库100道附答案(预热题)
- 自然资源部所属单位2026年度公开招聘工作人员备考题库(第一批634人)含答案详解
- 具有较大危险因素的生产经营场所、设备和设施的安全管理制度
- 适用于新高考新教材天津专版2024届高考英语一轮总复习写作专项提升Step3变魔句-提升描写逼真情境能力课件外研版
- 元宇宙技术与应用智慧树知到期末考试答案章节答案2024年中国科学技术大学
- 竹雕的雕刻工艺
- 社交媒体网络虚假信息传播的影响和治理
- 自考《影视编导》03513复习备考试题库(含答案)
- 消防设计专篇
- 新人教版高中生物必修一全册课时练(同步练习)
- 「梦回唐宋」-边塞诗(可编辑版)
- 九年级道德与法治(上)选择题易错50练
评论
0/150
提交评论