农夫送狼羊白菜过河
题目:一个农夫有一条船,和三样东西,狼、羊、和白菜,他要过河,这个船一次只能运一样东西,要防止狼吃羊、羊吃白菜,该怎么过?
答案是这样的:
离散数学里面的经典题目,面试官想考你的是有向图问题。
程序可以按照这种思路写:
1. 找出河岸边所有可能的组合。例如:人狼羊草,人狼羊,人羊草,狼,羊,草,狼草,人羊,人狼草,空(代表都过河了)
2. 构造有向图。即找出上述所有组合两两之间允许存在的状态转换,例如:人狼羊草->狼草,人狼羊->羊,人狼羊->狼 等等
3. 找连通图。即找出从人狼羊草->空 的连通图
简单原理:
推导出所有的可能性,遍历每种可能性,找到最终达到目标的那些树形分支。
(有时间研究一下)代码待写
摘录于:http://www.cnblogs.com/fantong/archive/2013/04/25/3043479.html#2674741