綜述,農(nóng)夫過河問題正確答案可分為四步:農(nóng)夫帶羊過河,把羊丟在對岸;農(nóng)夫返回帶白菜過河,把白菜丟在對岸,帶羊返回;農(nóng)夫帶狼過河,把狼與白菜丟在對岸;農(nóng)夫返回帶羊過河。
創(chuàng)新互聯(lián)公司2013年開創(chuàng)至今,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目網(wǎng)站制作、網(wǎng)站設(shè)計(jì)網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元東乃做網(wǎng)站,已為上家服務(wù),為東乃各地企業(yè)和個人服務(wù),聯(lián)系電話:028-86922220
農(nóng)夫,狼,羊,菜過河,船只可運(yùn)農(nóng)夫和一件物品,農(nóng)夫劃船。要求全部安全過河,避免出現(xiàn)農(nóng)夫不在時,羊吃菜,狼吃羊。 問題分析 根據(jù)對象的狀態(tài)分為過河(1)和不過河(0),此對象集合就構(gòu)成了一個狀態(tài)空間。
首先這是一個數(shù)據(jù)結(jié)構(gòu)問題。我們要求出農(nóng)夫渡河的最簡路徑我們應(yīng)當(dāng)采取隊(duì)列的廣度優(yōu)先搜索,相對于深度優(yōu)先的棧而言廣度優(yōu)先級可以優(yōu)先選擇出最短的路徑。
1、三對三有解。我用 Python 寫了搜尋答案的程序。要知道其它組合有沒有解,只要改一改 “mCOUNT, cCOUNT = 3, 3” 這一行然后運(yùn)行就知道了。有空的話我會譯成 Java 貼上來。
2、N個過不了吧(N3),因?yàn)樽笥覂蛇厒鹘淌康脑鲩L最多為2,由于傳教士人數(shù)等于野人人數(shù)會導(dǎo)致某一時刻至少有一側(cè)野人數(shù)大于傳教士數(shù)。
3、三名傳教士和三個野蠻人同在一個小河渡口,渡口上只有一條可容兩人的小船。
1、按照你的要求,不使用數(shù)組。 我的思路,起點(diǎn)貨物狼、羊、白菜,人一直在開船,通過遞歸函數(shù),每次靠岸嘗試裝卸貨方案,直到找滿足條件的方案。將可行方案存放在結(jié)構(gòu)鏈表中形成操作流水打印。
2、先把羊運(yùn)過去,獵人回來。在把狼運(yùn)過去,獵人抱羊回來,在抱白菜過去,獵人回來。最后把羊抱過去就OK了。
3、先過三只狼?;貋硪粋€。讓兩個羊過去。然后一羊一狼回來。再兩個羊過去。讓那個狼回來帶那倆只狼過去。搞定。