一道面試題


前幾天去面試,確切的說是復試。面試官給我出了一道題。是這樣的。

一個農夫有一條船,和三樣東西,狼、羊、和白菜,他要過河,這個船一次只能運一樣東西,要防止狼吃羊、羊吃白菜,該怎么過?

慚愧,我沒答出來。

然后面試官把答案告訴了我,問我怎么用計算機實現?

還是慚愧,我又沒答出來。

今天在上班的路上,想到了,可以做一個推理機來實現。隨后寫了一段程序。

簡單原理:

推導出所有的可能性,遍歷每種可能性,找到最終達到目標的那些樹形分支。

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

Lm.InferenceEngine 這個項目是推理引擎
  InferenceComputer這個是推理引擎的核心類,用來實現推理
  InferenceObject這個是推理對象的抽象類,需要使用推理引擎的對象,要繼承這個類,實現其中的抽象方法。

Lm.InferenceEngine.Test 這個項目是調用推理引擎解決此問題的實現。
  ThroughBridge這個類實現了推理對象的抽象類,用來給推理引擎提供農夫帶東西過河的故事背景。

 

簡要推理樹如下

簡要流程如下

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM