`
Touch_2011
  • 浏览: 290496 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

农夫过河的四种解法

阅读更多
/*
 * 题目描述:有一个农夫,带着一只狼、一只羊、一颗白菜过河。其中农夫不在的时候狼会吃羊,
 *           羊会吃白菜。只有一只船,且每次农夫最多只能带一样物品过河。求解决方案。
 * 
 * 思路:1. 过程回溯法。把人、狼、羊、白菜看成A、B、C、D。过河的时候从ABCD中选两个过河,在
 *          选一个回来。若发生狼跟羊、羊跟白菜在同一个岸边,且农夫不在场,则回溯.
 *
 *       2. 图的遍历。设从南岸到北岸,在南岸ABCD的各个状态是(用二进制表示):0000,在
 *          北岸的时候各个状态是:1111。所以过河问题就是从0000起始状态到1111最终状态的
 *          过程。易得,总共有16中状态。然后把每一种状态看成图的一个结点,把可以连通的
 *          结点用有向边连起来,就构成的一个有向图。从0000这个结点遍历(深度优先或者广
 *          度优先)图,遍历到1111结点则找到解。
 *
 *       3. 状态回溯法。设从南岸到北岸,在南岸ABCD的各个状态是(用二进制表示):0000,在
 *          北岸的时候各个状态是:1111。所以过河问题就是从0000起始状态到1111最终状态的
 *          过程。易得,总共有16中状态。从第一种状态0000开始搜索,搜索当前状态下可以到达的
 *          状态,搜索到一个则把这个状态看成当前状态,继续搜索。若出现当前状态搜索无可到达
 *          的状态或已遍历所有搜索出来的状态,则回溯。直到到达1111状态。
 *       
 *       4. 状态队列搜索法。跟思路3类似,只是搜索的方式不一样。思路3中用栈的思想进行深度搜索
 *          这里采用队列的思想进行广度搜索。
 */

 

0
0
分享到:
评论

相关推荐

    农夫过河问题代码

    农夫过河问题的一种解法.一个在校大学生的课程设计。请斧正!

    农夫过河问题的求解(C语言)

    找了好久,终于找到了一个C语言版的农夫过河问题的解法,认真看就看的懂,写的不错!简介明了!

    java农夫过河问题

    《Java实现农夫过河问题详解》 农夫过河问题是一个经典的逻辑推理问题,源自中国古代的智力谜题,也被称为“狼、羊、菜”问题。在这个问题中,农夫需要将自己、一只狼、一只羊和一棵蔬菜从河流的一边安全地运送到另...

    C++农夫过河问题代码

    根据提供的文件信息,我们可以深入分析该程序所涉及的IT知识点,包括C语言基础、数据结构中的队列概念以及具体的“农夫过河”问题解决思路。 ### C语言基础 1. **头文件引用**:`#include<stdio.h>` 和 `#include...

    数学建模—— 农夫的选择

    【数学建模—— 农夫的选择】涉及到的是利用数学建模方法解决农业畜牧业中的实际问题。在这个案例中,农夫需要确定最佳的山羊养殖数量、冬季饲料储备量以及繁殖策略,以最大化经济效益并实现羊群的可持续发展。 ...

    农夫,狼,羊, 菜,过河经典问题

    《农夫,狼,羊,菜,过河问题与有限状态机解法》 过河问题,这是一个经典的逻辑思维题目,涉及到的是如何在一个有限的环境中,通过合理的操作序列达成特定的目标。在这个问题中,农夫需要将狼、羊和菜全部安全地从...

    duilie.rar_农夫问题

    农夫过河问题是一个常见的逻辑思维题目,通常涉及到农夫、狼、羊、菜四样物品,以及一艘只能载一人的小船。问题的目标是让农夫安全地将所有物品运送到河对岸,同时确保任何时候都不能让狼和羊、羊和菜单独在一起,...

    软件技术基础:第6讲 算法与数据结构(1).pdf

    接着,通过一个典型的农夫过河问题,生动地解释了算法在解决特定问题中的应用。此外,文档还详细阐述了算法的表示方法、算法的两要素以及算法描述语言与编程语言之间的关系。以下是对文档内容的知识点整理: 1. ...

    逻辑题智力

    3. **农夫过河问题**: 这是另一个经典逻辑题,类似于第1题。关键在于安排农夫、狗、男人、女人以及孩子们的过河顺序,同时保证狗不离开农夫,男孩不离开男人,女孩不离开女人。由于小船只能载两人,需要多次往返,...

    算法的概念学案.doc

    **问题1**:农夫过河问题是一个经典的逻辑谜题,涉及到状态转移和条件约束。在这个问题中,农夫的目标是将狼、羊和蔬菜安全地带到河对岸。关键在于避免狼吃羊、羊吃菜的情况发生。解决这个问题的一种方法是: 1. ...

    安全渡河问题的图解新法~~

    安全渡河问题是一个经典的逻辑谜题,通常被描述为一个农夫带着一条狼、一只羊和一筐白菜过河。由于船只太小,农夫每次只能带一样物品过河。然而,当农夫不在场的情况下,狼会吃掉羊,羊会吃掉白菜。因此,如何才能...

    算法题目题

    **问题描述**:给定一张地图,能否用四种颜色给地图上的各个区域染色,使得相邻的区域颜色不同? **解法概述**:这是一个著名的图论问题,可以使用回溯法或者基于约束满足问题的算法来解决。核心思想是在给每个区域...

    算法设计和分析基础习题集参考答案解析.doc

    3. **农夫过河问题(Puzzle of the Farmer, Wolf, Goat, and Cabbage)**: 这是一个经典的逻辑问题,农夫需要将狼、羊和白菜安全地从一边运送到另一边,但不能让狼和羊单独在一起,也不能让羊和白菜单独在一起,因为狼...

    人教高中数学必修算法的概念PPT学习教案.pptx

    1. **农夫过河问题**: 这是一个经典的逻辑问题,涉及到如何通过有限的资源和条件(农夫、狼、羊、蔬菜、一条船)进行有效操作,确保所有物品都能安全过河。这个问题可以通过设计一系列的决策步骤来解决,例如先将羊...

    人教高中数学必修算法的概念PPT课件.pptx

    1. 农夫过河问题: 这是一个经典的逻辑问题,通过设计合理的步骤序列,农夫可以安全地将狼、羊和蔬菜全部运过河。这个问题体现了算法在解决实际问题中的应用,需要考虑各种条件(如农夫不在场时动物之间的关系)并...

    搜索算法及解题for oi

    10. **农夫过河问题**:经典的逻辑问题,通常使用状态空间搜索算法来解决,例如深度优先搜索。 11. **七段数码管问题**:通常涉及到位操作和状态编码,可以使用动态规划或回溯来找到所有可能的显示方式。 12. **...

    安全渡河问题的图解新法 (2007年)

    该问题通常被描述为一个农夫带着一条狼、一只羊和一筐白菜过河的情景,但由于船只限制,农夫每次只能携带其中的一个物品过河。此外,还需要确保狼不会吃羊、羊不会吃白菜。论文提出的解决方案是将实际问题抽象成图论...

    高中数学 第一章 算法初步 111 算法的概念学案 新人教A版必修3 学案.doc

    例如,农夫带狼、羊、白菜过河的问题和把大象装进冰箱的问题,都是通过一系列有序的操作来达到目标。 算法的概念被定义为按照特定规则解决某一类问题的明确步骤。算法的特征包括普遍性(适用于一类问题)、有限性...

Global site tag (gtag.js) - Google Analytics