狼羊草和農夫過河問題

2021-09-11 11:48:38 字數 973 閱讀 9149

農夫需要把狼、羊、菜和自己運到河對岸去,只有農夫能夠划船,而且船比較小,除農夫之外每次只能運一種東西,還有乙個棘手的問題,就是如果沒有農夫看著,羊會偷吃菜,狼會吃羊。請考慮一種方法,讓農夫能夠安全地安排這些東西和他自己過河。

本題使用深度優先策略構建行動樹,搭配三種剪枝邏輯以保證結果可行

老婆餓了,要趕回家送飯,細節請讀**,見諒~~

left =

0b1111

right =

0b0000

steps =

[0b1000

,0b1001

,0b1010

,0b1100

]wrong =

[0b0110

,0b0011

]ever =

[right]

path =

defsearch_path

(left, right, ever, path)

:if right ==

0b1111

:print

(path)

return

for step in steps:

ifmax

(left, right)

& step != step:

continue

left_n = left ^ step

right_n = right ^ step

if left_n in wrong or right_n in wrong:

continue

if right_n in ever:

continue

path_n = path[:]

ever_n = ever[:]

search_path(left_n, right_n, ever_n, path_n)

search_path(left, right, ever, path)

第 3 3 課 狼 羊 菜和農夫過河問題

農夫需要把狼 羊 菜和自己運到河對岸去 不知道為啥要運狼,別問我 只有農夫能夠划船,而且船比較小,除農夫之外每次只能運一種東西,還有乙個棘手的問題,就是如果沒有農夫看著,羊會偷吃菜,狼會吃羊。請考慮一種方法,讓農夫能夠安全地安排這些東西和他自己過河。這是乙個很簡單的問題,在狼 羊和菜這個食物鏈上,關...

農夫過河問題

題目描述 有乙個農夫帶乙隻羊 一筐菜和乙隻狼過河。如果沒有農夫看管,則狼要吃羊,羊要吃菜。但是船很小,只夠農夫帶一樣東西過河。問農夫該如何解此難題?我的 include include include include include include include using namespace s...

農夫過河問題

問題 有一人帶著狼羊菜來到河的左岸欲乘乙隻小船過到右岸,每次人只能帶其中乙個過河 當有人在不會有事 當無人在時 就不允 許狼和羊在一起,也不允許羊和菜在一起,設計演算法以最少的次數過河?採用位向量,4個二進位制位的0 1情況表示狀態,顯而易見,共24 16種可能狀態。從高位到低位分別表示農夫 狼 白...