修道士与野人问题课程设计报告
这是一个古典问题。假设有n个修道士和n个野人准备渡河,但只有一条能容纳c人的小船,为了防止野人侵犯修道士,要求无论在何处,修道士的个数不得少于野人的人数(除非修道士个数为0)。如果两种人都会划船,试设计一个算法,确定他们能否渡过河去,若能,则给出一个小船来回次数最少的最佳方案。要求:(1)用一个三元组(x1,x2,x3)表示渡河过程中各个状态。其中,x1表示起始岸上修道士个数,x2表示起始岸上野人个数,x3表示小船位置(0——在目的岸,1——在起始岸)。例如(2,1,1)表示起始岸上有两个修道士,一个野人,小船在起始岸一边。采用邻接表做为存储结构,将各种状态之间的迁移图保存下来。(2)采用广度搜索法,得到首先搜索到的边数最少的一条通路。(3)输出数据
下载地址
用户评论
课程设计就靠它了 ,好
n数字过大会有问题,会出现死循环
在输入n的数字过大时,解的数目过多,程序中用于储存三元组的空间不够,好像会停止运行。
程序代码有些问题啊
还行吧,至少对我来说还是有点帮助的,帮我解决了3个不解的问题。
程序代码调试时崩溃,望作者修改