一道面试题


前几天去面试,确切的说是复试。面试官给我出了一道题。是这样的。

一个农夫有一条船,和三样东西,狼、羊、和白菜,他要过河,这个船一次只能运一样东西,要防止狼吃羊、羊吃白菜,该怎么过?

惭愧,我没答出来。

然后面试官把答案告诉了我,问我怎么用计算机实现?

还是惭愧,我又没答出来。

今天在上班的路上,想到了,可以做一个推理机来实现。随后写了一段程序。

简单原理:

推导出所有的可能性,遍历每种可能性,找到最终达到目标的那些树形分支。

源码在:http://lmcommon.codeplex.com/

Lm.InferenceEngine 这个项目是推理引擎
  InferenceComputer这个是推理引擎的核心类,用来实现推理
  InferenceObject这个是推理对象的抽象类,需要使用推理引擎的对象,要继承这个类,实现其中的抽象方法。

Lm.InferenceEngine.Test 这个项目是调用推理引擎解决此问题的实现。
  ThroughBridge这个类实现了推理对象的抽象类,用来给推理引擎提供农夫带东西过河的故事背景。

 

简要推理树如下

简要流程如下

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM