骑士游历问题【信息技术】.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
骑士游历问题 设有一个n*m的棋盘(2n≤50,2m≤50),如在棋盘上任一点有一个中国象棋马, 马走的规则为: 1.马走日字 2.马只能向右走。即图所示: 当n,m 给出之后,同时给出马起始的位置和终点的位置,试找出从起点到终点的所有路径的数目例如:(n=10,m=10),(1,5)(起点),(3,5)(终点)输出2(即由(1,5)到(3,5)共有2条路径): 输入: n,m,x1,y1,x2,y2(分别表示n,m,起点坐标,终点坐标) 输出: 路径数目(若不存在从起点到终点的路径,输出0) 路径数目路径数目”呢。 从(x1,y1)出发,按照由左而右的顺序定义阶段的方向。位于(x,y)左方且可达(x,y)的跳马位置集合都是(x,y)的子问题,起点至(x,y)的路径数实际上等于起点至这些位置集的路径数之和(如下图)。 如此一来,状态转移关系便凸显出来。设状态转移方程map,其中map[i,j]为起点x1,y1i,j数目数目map数组的元素类型为extended。初始时,除map[x1,y1]=1 。 我们采用动态程序设计的方法计算起点x1,y1x2,y2数目map[x2,y2]: j:中国象棋马(y1≤j≤y2); 状态i:中国象棋马j列的行位置(1≤i≤n)k:中国象棋马i,j)(1≤k≤4); 计算过程如下: fillchar(map,sizeof(map),0); map[x1,y1] ←1; {从(x1,y1)出发} for j←y1 to y2 do {递推中国象棋马中国象棋马j列的行位置} for k←1 to 4 do {递推中国象棋马i,j)中国象棋马i,j)k方向跳至(x,y); if (x∈{1..n})∧(y∈{1..y2}) {计算状态转移方程} then map[x,y] ←map[i,j]+map[x,y] end;{for} writeln(map[x2,y2]:0:0); {输出从到的路径数目n2),

文档评论(0)

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档