传教士过河问题是一个耳熟能详的问题,也是很多智力游戏中经常出的题目,但是,我从来都没有学到一个解决这类问题的通解。在《人工智能》课程中学到了,当时觉得这个题目很有意思,作为大四的学生,本来已经对上课没有什么兴趣了。不过,恰巧,我去上的那几节课中有这个问题。但是,老师的课件上好像有些问题,我课下想了想,觉得自己的想法应该没有问题,作为复习,就正好拿来演习一下喽!
问题描述:三个野人和三个传教士来到河边,打算乘一条船从左岸到右岸,该船一次最多只能载两个人,在任何时候,如果野人人数超过传教士人数,那么野人就会把传教士吃掉,怎样才能用这条船安全地把所有人都渡过河呢?假设野人听从传教士的安排,并且野人和传教士都会划船。

其中每个状态都是安全的,如果用文字来描述这个过程应该是这样的:
(1)两个野人先划船到对岸,左岸一个野人,三个传教士,右岸两个野人,安全;
(2)一个野人划船回来,左岸两个野人,三个传教士,右岸一个野人,是安全的;
(3)两个野人划船到右岸,左岸三个传教士,右岸三个野人,安全;
(4)一个野人划船到左岸,左岸三个传教士,一个野人,右岸两个野人,安全;
(5)两个传教士划船到右岸,左岸一个传教士,一个野人,右岸两个传教

本文介绍了经典的传教士与野人过河问题,阐述了解决此类问题的策略。通过一系列安全的状态转移,详细说明如何确保在野人数量不超出传教士的情况下,用一艘小船将他们全部安全渡过河。文章通过文字描述和步骤分解,清晰地展示了整个过程。
最低0.47元/天 解锁文章
668

被折叠的 条评论
为什么被折叠?



