设计 任务书 文档 开题 答辩 说明书 格式 模板 外文 翻译 范文 资料 作品 文献 课程 实习 指导 调研 下载 网络教育 计算机 网站 网页 小程序 商城 购物 订餐 电影 安卓 Android Html Html5 SSM SSH Python 爬虫 大数据 管理系统 图书 校园网 考试 选题 网络安全 推荐系统 机械 模具 夹具 自动化 数控 车床 汽车 故障 诊断 电机 建模 机械手 去壳机 千斤顶 变速器 减速器 图纸 电气 变电站 电子 Stm32 单片机 物联网 监控 密码锁 Plc 组态 控制 智能 Matlab 土木 建筑 结构 框架 教学楼 住宅楼 造价 施工 办公楼 给水 排水 桥梁 刚构桥 水利 重力坝 水库 采矿 环境 化工 固废 工厂 视觉传达 室内设计 产品设计 电子商务 物流 盈利 案例 分析 评估 报告 营销 报销 会计
 首 页 机械毕业设计 电子电气毕业设计 计算机毕业设计 土木工程毕业设计 视觉传达毕业设计 理工论文 文科论文 毕设资料 帮助中心 设计流程 
垫片
您现在所在的位置:首页 >>土木工程毕业设计 >> 文章内容
                 
垫片
   我们提供全套毕业设计和毕业论文服务,联系微信号:biyezuopin QQ:2922748026   
野人过河问题006
文章来源:www.biyezuopin.vip   发布者:毕业作品网站  
野蛮人过河问题算法说明
一.     问题说明
   有3个传教士和3个野蛮人来到河边,打算乘一只船从左岸渡到右岸。该船的负载能力为2人,在任何时刻如果野蛮人人数超过传教士人数,野蛮人就会把传教士吃掉。他们怎样才能用这条船安全让所有人都渡过河。
二. 算法说明
采用递归算法。因为每次过河都要遵循几个约定,一为两边岸上野蛮人的数量必须大于传教士的数量,二为船上最多只能装两个人,所以采用递归算法不断嵌套循环模拟每次过河的过程,同时加上若干递归中止返回条件,则可以推得过河的方法。
三.     数据结构
船结构:即表示船上野蛮人和传教士的个数
        typedef struct Boat        
{
            int numX;               /// 传教士个数
            int numY;               /// 野蛮人个数
}Boat;
 
从左岸到右岸时船上装的人的种类,有3种,即2个野人和0个传教士,0个野人和2个传教士,1个野人和1个传教士。
Boat LtoR[3]={{2,0},{0,2},{1,1}};
 
从右岸回左岸时船上装的人的种类,有2种,即1个野人或1个传教士
Boat RtoL[2]={{1,0},{0,1}};
 
递归函数1:   int fnPassRiver1(x1,y1,x2,y2)
表示每次由一个野蛮人驾船从右岸回左岸后,再向右过河的过程
 
递归函数2:   int fnPassRiver2(x1,y1,x2,y2)
表示每次由一个传教士驾船从右岸回左岸后,再向右过河的过程
 
四.     具体算法
第一次过河时,有三种情况,即2个野人和0个传教士,0个野人和2个传教士,1个野人和1个传教士,所以在主函数中用参数是k的三重for循环,确定整体过河框架。在接下来的从左向右的过河之前,存在两种可能,即驾船从右边回来的是野蛮人或传教士,因此用两个递归函数fnPassRiver1()和fnPassRiver2()分类。
函数fnPassRiver1()和fnPassRiver2()的内容相似,即先判断递归中止条件,若满足三个条件中的任意一个,都跳出此次循环,回到上一级递归;若不满足,则进入下一级循环,此时改变了函数fnPassRiver1(x1,y1,x2,y2)和fnPassRiver2(x1,y1,x2,y2)中的传递参数x1,y1,x2,y2,改变的依据是数组LtoR[3]中的三组值。具体的说,在函数fnPassRiver1()中依次进行三个递归调用,即当一个野人驾船回左岸后带上另一个野人回右岸,调用下一级递归函数;当一个野人驾船回左岸后带上一个传教士回右岸,调用下一级递归函数;当一个野人驾船回左岸后此野人下船,同时另外两个传教士上船回右岸,调用下一级递归函数。同理,在函数fnPassRiver2()中依次进行三个递归调用,即当一个传教士驾船回左岸后带上另一个传教士回右岸,调用下一级递归函数;当一个传教士驾船回左岸后带上一个野人回右岸,调用下一级递归函数;当一个传教士驾船回左岸后此传教士下船,同时另外两个野人上船回右岸,调用下一级递归函数。
经过不断的递归调用最终实现过河全过程。
五.     源程序
(见下页)
  全套毕业设计论文现成成品资料请咨询微信号:biyezuopin QQ:2922748026     返回首页 如转载请注明来源于www.biyezuopin.vip  

                 

打印本页 | 关闭窗口
  下一篇文章:ATM自动取款机终端系统007
本类最新文章
基于植物空间的风景区植物景观改造 花都公园景观设计 设计说明书(论 景观植物赏析 毕业论文+任务书+
新昌县鼓山公园景观设计 任务书+ 机械侧深施肥对水稻土壤养分含量的 日投4000张黄牛皮轻革(鞋面革
| 关于我们 | 友情链接 | 毕业设计招聘 |

Email:biyeshejiba@163.com 微信号:biyezuopin QQ:2922748026  
本站毕业设计毕业论文资料均属原创者所有,仅供学习交流之用,请勿转载并做其他非法用途.如有侵犯您的版权有损您的利益,请联系我们会立即改正或删除有关内容!