過河什么意思 農(nóng)夫過河問題?
農(nóng)夫過河問題?該項目旨在解決農(nóng)民過河的問題:農(nóng)民帶著一只狼、一只羊和一些蔬菜過河。河邊只有一艘船,農(nóng)民一次只能帶一件東西。沒有人的時候,狼會吃羊,羊會吃蔬菜。這個計劃將找出所有農(nóng)民過河的計劃。首先,我
農(nóng)夫過河問題?
該項目旨在解決農(nóng)民過河的問題:農(nóng)民帶著一只狼、一只羊和一些蔬菜過河。河邊只有一艘船,農(nóng)民一次只能帶一件東西。沒有人的時候,狼會吃羊,羊會吃蔬菜。這個計劃將找出所有農(nóng)民過河的計劃。首先,我們需要代表狼、羊、蔬菜和農(nóng)民的位置。四者的位置可分為兩種情況:一種是在當?shù)劂y行,另一種是在對岸。我們使用0和1來表示這四個元素,所以我們使用一個包含四個元素的數(shù)組。為了記錄每一步,程序使用二維數(shù)組a[Max]ustep][4]并記錄每一步中四個人的位置。第一步是[0],第二步是[1]。。。[0][0]表示第一步是狼在本地銀行(0)或對岸(1),而[0][1]表示第一步是羊在本地銀行或對岸。。。為了記錄每個過河農(nóng)民的狀態(tài),使用了一個數(shù)組B[Max],數(shù)組中元素的值可以分別為-1、0、1、2,表示過河農(nóng)民空手,有狼、羊和蔬菜。第一步是狼、羊、蔬菜和農(nóng)民都在這個例子中,所以a[0][0]到a[0][3]都是0。它應該已經(jīng)初始化,但a是一個全局變量,因此它會自動初始化為0,因此此步驟保存在程序中。搜索是一個遞歸函數(shù),通過不斷的搜索可能下一步,找到解決方案,是一種深度優(yōu)先的搜索。A[Istep][0]A[Istep][1]A[Istep][2]A[Istep][3]==4,表示A[Istep][0]到A[Istep][3]在第二個Istep中都是1,表示四個都在另一邊。所以輸出結果。先帶羊過河。抓住狼。那就同時把羊帶過去。把羊放下,同時把食物拿來。把它送過來?;貋戆蜒驇н^去
農(nóng)夫過河,防止羊吃菜,狼吃羊的程序怎樣編?
解決方案如下:
1。農(nóng)夫帶著羊一個人回來了
2。農(nóng)夫帶著狼一個人回來了
3。農(nóng)夫拿著卷心菜一個人回來了
4。農(nóng)夫帶著羊,所有的羊都安全地過了岸。現(xiàn)在沒時間做這個節(jié)目了
農(nóng)夫端著一籃草,手里抱著一只羊,緊跟著一只狼。狼看到前面羊的口水流了三英尺。農(nóng)夫把羊拴在草架上,把籃子放在水上。農(nóng)夫把籃子拉到他面前,把羊放在草地上。草漂浮在水面上。這樣,羊就可以不費吹灰之力地游泳了。狼緊緊地追著他。在想了想如何把狼扔掉后,農(nóng)夫突然蹲下來放開手,他潛入水中,從水中抓住狼的爪子,把它拉下水。狼盯著水上的羊。它突然沉了下去。農(nóng)夫在水里屏住呼吸,把狼拖死了。狼很快就淹死了。
農(nóng)夫從水里出來,以為他的羊已經(jīng)走了?但是這只聰明的羊正在水里尋找它的主人。
危險消除后,農(nóng)夫又把死狼拉上來,準備回家好好吃一頓。