一个有意思的问题

cbc 2005-04-10 09:22:21
假定有一个猎人带着一只狼、一头山羊和一棵白菜来到一条河的左岸,拟摆渡过河,而岸边只有一条小船,其 大小仅能装载人和其余三件东西中的一件,也就是说,每一次猎人只能将随行者中的一件带到彼岸。若猎人将狼和山羊留在同一岸上而无人照管,那么,狼就会将羊吃掉;如果猎人把山羊和白菜留在同一岸,山羊也会把白菜吃掉。现在,请你用状态转换图作为工具,描述猎人可能采取的种种摆渡方案,并从中找出可将上述三件东西安全地带到右岸的方案来
...全文
376 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
yuzl32 2005-04-13
  • 打赏
  • 举报
回复
初中的时候做过这道体
mmmcd 2005-04-13
  • 打赏
  • 举报
回复
刚学过数理逻辑
这类问题可以用消解原理做

本质上也就是寻找初状态向终状态转移的过程。
直接用BFS也是可行的。
jp1984 2005-04-12
  • 打赏
  • 举报
回复
That is original model of what we call backtracking
galois_godel 2005-04-11
  • 打赏
  • 举报
回复
老问题了,你可以查查以前的帖子
cosio 2005-04-11
  • 打赏
  • 举报
回复
人A 狼B 羊C 白菜D

1.A+C     留C
2.A返回
3.A+B     留B
4.A带C返回       --只有B
5.A+D     留D  
6.A返回 --只有B\D
7. A+C     A\B\C\D
寻开心 2005-04-11
  • 打赏
  • 举报
回复
galois_godel() ( ) 提供的就是一种解法
把各种物体在河的不同位置都表示出来,作为图的节点
有些节点是安全的,有些节点是不安全的状态(安全和不安全就是依靠是否能够共存为标记)
节点和节点之间是有连接的,如果一个状态能够通过猎人的一次摆渡,变成了另外一个状态,那么这两个状态之间就是连通的

这样问题就是找一条通过安全节点的通路问题了,这个可以用计算机来解决的。
cbc 2005-04-11
  • 打赏
  • 举报
回复
对,问题是要用有限自动机理论来解决该问题
MagicCarmack 2005-04-11
  • 打赏
  • 举报
回复
可以查查以前的帖子
newmeteor 2005-04-11
  • 打赏
  • 举报
回复
大家考虑一下,找出正解很容易,但是考虑一下,用状态图呢?
好像有点意思啊!
galois_godel 2005-04-10
  • 打赏
  • 举报
回复
以河一边的情况为状态,一共2^4的状态,一开始状态是1111(二进制),目标状态是0000
如果能运过去,就连条边,比如1111和0101之间可以连条边,(假社第一个是人,第3个是山羊)然后就用Dijkstral或bfs就可以解决

33,008

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧