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