使用C++语言实现修道士与野人问题
这是一个古典问题。假设有n个修道士和n个野人准备渡河,但只有一条能容纳c人的小船,为了防止野人侵犯修道士,要求无论在何处,修道士的个数不得少于野人的人数(除非修道士个数为0)。如果两种人都会划船,试设计一个算法,确定他们能否渡过河去,若能,则给出一个小船来回次数最少的最佳方案。 要求: (1)用一个三元组(x1,x2,x3)表示渡河过程中各个状态。其中,x1表示起始岸上修道士个数,x2表示起始岸上野人个数,x3表示小船位置(0——在目的岸,1——在起始岸)。例如(2,1,1)表示起始岸上有两个修道士,一个野人,小船在起始岸一边。 采用邻接表做为存储结构,将各种状态之间的迁移图保存下来。 (2)采用广度搜索法,得到首先搜索到的边数最少的一条通路。 (3)输出数据 若问题有解(能渡过河去),则输出一个最佳方案。用三元组表示渡河过程中的状态,并用箭头指出这些状态之间的迁移: 目的状态←…中间状态←…初始状态。 若问题无解,则给出“渡河失败”的信息。 (4)求出所有的解。
推荐下载
-
AES加密算法C++语言实现
用C++语言实现简单的AES算法,可以自己输入需要加密的明文和密钥
14 2020-10-27 -
图书管理系统C++语言实现
此程序是用标准C++编写的控制台下的一个简易图书管理系统。
6 2020-09-17 -
水准网平差C++语言实现
为解决水准网平差,利用间接平差模型,采用最小二乘进行精度评定,可直接利用VS2019以及其他版本运行运行。程序能较好的计算出平差结果
14 2020-05-13 -
C++语言实现计算器功能
计算机专业的课程设计,用C++语言实现一个具有简单计算功能的软件!
20 2019-09-08 -
用C++语言实现首次适应算法
用C++语言实现操作系统中关于动态空闲空间的分配与回收,用首次适应算法实现。简单的小程序,只用结构体和数组实现。适用于初学者。
28 2019-05-25 -
用C++语言实现奇偶魔方阵
用C++语言实现奇偶魔方阵该资源不但有源代码,还有详细的文档说明。
20 2019-07-18 -
A星寻路算法c++语言实现
A*算法,A*(A-Star)算法是一种静态路网中求解最短路径最有效的直接搜索方法,也是解决许多搜索问题的有效算法。算法中的距离估算值与实际值越接近,最终搜索速度越快。c++语言实现
29 2019-07-31 -
C++语言实现长整数相加减
C++语言实现长整数相加减
26 2019-07-29 -
校园导游程序C++语言实现
示例九江学院图用无向图表示你所在学校的校园景点平面图,图中顶点表示主要景点,存放景点的编号、名称、简介等。
28 2019-07-17 -
停车场管理C++语言实现
用C++语言实现一个停车场管理程序,其中用到了队列,堆栈的基本操作
21 2019-07-24
用户评论