在河的右岸有3个修道士、3个野人和一条船,修道士要把所有人都运到河对岸,但是: (1)修道士和野人都会划船,但船每次最多只能运两个人; (2)在两个岸边,野人数目不能超过修道士的数目,否则后者被吃掉。野人完全服从修道士的任何渡河方案。 包含prolog代码以及实验报告
2021-12-01 12:39:29 226KB prolog
1
c++实现的修道士野人问题 河的左岸有N个野人和N个修道士以及一条小船,修道士们想用这条小船把所有的人都运到河的右岸,但又受到以下限制:  修道士和野人都会划船,但船一次只能载C人。  在任何岸边,为了防止野人侵犯修道士,野人数不能超过修道士数,否则修道士将会被野人吃掉。 假定野人愿意服从任何一种过河的安排,本设计的主要任务是规划出一种确保修道士安全的过河方案。
2021-11-29 23:13:12 3KB 修道士野人 源代码
1
C语言版的程序3个修道士与3个野人渡河问题。
2021-11-18 11:13:58 14KB 修道士 野人
1
包含prolog求解修道士与野人问题的实验报告、源代码及试验运行截图
1
这是一个古典问题。假设有n个修道士和n个野人准备渡河,但只有一条能容纳c人的小船,为了防止野人侵犯修道士,要求无论在何处,修道士的个数不得少于野人的人数(除非修道士个数为0)。如果两种人都会划船,试设计一个算法,确定他们能否渡过河去,若能,则给出一个小船来回次数最少的最佳方案。 要求: (1)用一个三元组(x1,x2,x3)表示渡河过程中各个状态。其中,x1表示起始岸上修道士个数,x2表示起始岸上野人个数,x3表示小船位置(0——在目的岸,1——在起始岸)。例如(2,1,1)表示起始岸上有两个修道士,一个野人,小船在起始岸一边。 采用邻接表做为存储结构,将各种状态之间的迁移图保存下来。 (2)采用广度搜索法,得到首先搜索到的边数最少的一条通路。 (3)输出数据 若问题有解(能渡过河去),则输出一个最佳方案。用三元组表示渡河过程中的状态,并用箭头指出这些状态之间的迁移: 目的状态←…中间状态←…初始状态。 若问题无解,则给出“渡河失败”的信息。 (4)求出所有的解。
2021-09-24 10:52:35 7KB C++ 修道士与野人
1
修道士与野人过河问题,包括界面编写。
2019-12-21 22:23:59 16KB 过河问题 (有界面)
1
野人与修道士问题,C++完整工程项目及源代码
1