马步遍历问题与骑士巡游问题的回溯算法_第1页
马步遍历问题与骑士巡游问题的回溯算法_第2页
马步遍历问题与骑士巡游问题的回溯算法_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、马步遍历问题与骑士巡游问题的回溯算法【摘要】马步遍历问题与骑士巡游(knights tour)问题是指在有8 8方格的国际象棋棋盘上进行奇异的骑士“L型”(L-shaped)移动的问题。而骑士巡游问题实际是带有约束条件的马步遍历问题,因此在用程序求解的时候可以一并求解。本文给出求解这一问题的回溯算法之C+语言程序。论文关键词:骑士巡游,回溯算法,C+语言一般地说,我们用如下方法表示一个解:即把数字0,1,63放入棋盘中的方格来表示到达这些方格的顺序。解决骑士巡游问题更具创意的方法之一是由J. C. Warnsdorff在1823年提出的。其规则是:骑士总是移向具有最少出口且没有到达过的方格之一

2、。由于骑士巡游问题实际是带有约束条件的马步遍历问题,因此在用程序求解的时候可以一起求解。程序算法依然是回溯法,和皇后问题有相似之处。马步遍历和骑士巡游问题的复杂度较高,求出一个解相对容易,但要求出所有的解是要花一定时间的。一、回溯算法的实现1为解决这个问题,我们把棋盘的横坐标定为i,纵坐标定为j。i和j的取值范围是从到SIZE。当某个骑士占了位置(i,j)时,其在这个位置上可以向8个方向以“L型”移动,它们分别是:方向1:i+2,j+1;方向2:i+1,j+2;方向3:i-1,j+2;方向4:i-2,j+1;方向5:i-2,j-1;方向6:i-1,j-2;方向7:i+1,j+2;方向8:i+2,j-1。2棋盘以二维数组表示,其下标最大值8,将骑士的每一步按1,2,3 64填入数组相应单元。其过程如下:for(int i=0;i8;i+)for(int j=0;j8;j+)trajKTij=0;作者简介 王力强(1965- ),江苏省常州市武进区人,陕西省城市经济学校财务科长,工程师。for(int e=0; e=curPointSub; e+)trajKTmoveTraje.Location.x_posmoveTraje.Location.y_pos

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论