基于数组回溯算法猴子选大王问题实现与分析.pdfVIP

基于数组回溯算法猴子选大王问题实现与分析.pdf

  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文档。上传文档
查看更多

猴子选大王游戏

➢猴子选大王(亚瑟夫环)是数据结构和算法

中常见的一类问题。有人使用循环队列实现,

有人使用链表实现。本章将使用数组的回溯算

法实现选猴王的算法程序。

问问题题描描述述

➢有M只猴子围成一圈,每只各一个从1

到M中的编号,打算从中选出一个大王;

经过协商,决定出选大王的规则:从第一

个开始循环报数,数到N的猴子出圈,最

后剩下来的就是大王。

➢在本章,我们以此问题作为研究对象,

通过编写程序,来输出站成一圈猴子的

出圈顺序号。

问问题题分分析析及及实实现现

➢1问题分析

➢2问题实现

➢3程序运行

问题分析及实实现现

➢拿到这个算法问题,首先想到的前面提到的

要领:看清、想明、把握每一个细节。

➢根据问题描述可知,我们要实现的是输出猴

子出圈的顺序。简单举例:9个猴子数到3出

圈,则应打印:3,6,9…,以下将仔细地

分析问题并实现算法。

问题分析

➢而我们的将要开发的程序,就是为了使这些猴子最

后留下大王,每个淘汰出圈的猴子。这里将猴子进

行顺序编号。

➢假设猴子编号从1开始至30,则以数到3为例,从1

开始数猴子,至第三只猴子时,出圈,此时,圈子

应该有1,2,4,5,6…30,则继续从第4只从头

数起,将第4只猴子做为第1号,依此类推,这样,

就产生了出圈的顺序号:3,6,9,12,

15…..29,那么最后出圈的猴子即为猴王。

问题实现

➢本小节就通过编程来实现此问题,实现的代

码如下。

➢1.让猴子站成一圈

n

➢如何让猴子站成一圈呢?根据问题分析结果,

采用整型一n维数组中保存猴子顺序号,即表n

示站成一排。代码如下:

问题实现

1.#includestdio.h

2.#includedos.h

3.#defineMAX30/*定义猴子总数为30*/

4.inti,j,k,temp;

5.intMonkey[MAX],S;

6.voidinit()

7.{

8.for(i=0;iMAX;i++)

9.Monkey[i]=i+1;

10for(i=0;iMAX;i++)

11printf(%d,Monkey[i]);/*让猴子站成一圈*/

12printf(\n);

13}

问题实现

➢2.将结果输出

➢将回溯结果输出至屏幕,以循环打印的方式,

调用输入输出函数printf,将结果回显。

代码如下:

问问题题实实现现

1.voidoutput()

2.{

3.printf(猴子淘汰出圈的顺序是:\n\r);

4.for(i=MAX-1;i=0;i--)

05printf(第%3d只猴子出

圈!\n\r,Monkey[i]);/*输出结果*/

06printf(猴王是:第%d只猴子

\n\r,Monkey[i+1]);/*输出结果*/

07}

问题实现

➢3.回溯法求猴子出圈顺序

➢在主程序中,要求用户输入出队序数,即数

到S,就让序号是S的猴子出队。回溯法是:

将猴子总个数循环,第一次循环都是将当前需

要出圈的猴子排到数组末尾。这样,当全部猴

子循

您可能关注的文档

文档评论(0)

daluobu + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档