螞蟻問題(演算法)

2021-05-27 09:53:15 字數 938 閱讀 4600

有一根27厘公尺的細木桿,在第3厘公尺、7厘公尺、11厘公尺、17厘公尺、23厘公尺這五個位置上各有乙隻螞蟻。木桿很細,不能同時通過乙隻螞蟻。開始時,螞蟻的頭朝左還是朝右是任意的,它們只會朝前走或調頭,但不會後退。當任意兩隻螞蟻碰頭時,兩隻螞蟻會同時調頭朝反方向走。假設螞蟻們每秒鐘可以走一厘公尺的距離。編寫程式,求所有螞蟻都離開木桿的最小時間和最大時間。

答案:public class mayi

private void t1()

if (!a2.alreadygone)

if (!a3.alreadygone)

if (!a4.alreadygone)

if (!a5.alreadygone)

// 2:判斷兩隻螞蟻是否會碰頭,碰頭就都調頭

if (a1.site == a2.site && a1.direct == 2

&& a2.direct == 1)

if (a2.site == a3.site && a2.direct == 2

&& a3.direct == 1)

if (a3.site == a4.site && a3.direct == 2

&& a4.direct == 1)

if (a4.site == a5.site && a4.direct == 2

&& a5.direct == 1)

// 3:判斷是否已經全部離開

if (a1.alreadygone && a2.alreadygone

&& a3.alreadygone && a4.alreadygone

&& a5.alreadygone) }}

}}}}

}}class ant else

if (site == 0 || site == 27)

}public void changedirect() else }}

3 螞蟻問題

有一根27厘公尺的細木桿,在第3厘公尺 7厘公尺 11厘公尺 17厘公尺 23厘公尺這五個位置上各有乙隻螞蟻。木桿很細,不能同時通過乙隻螞蟻。開始時,螞蟻的頭朝左還是朝右是任意的,它們只會朝前走或調頭,但不會後退。當任意兩隻螞蟻碰頭時,兩隻螞蟻會同時調頭朝反方向走。假設螞蟻們每秒鐘可以走一厘公尺的距...

螞蟻路徑問題

木棍上隨機放著n只螞蟻,螞蟻朝向隨機,螞蟻相撞後各自往回爬,設木棍長度為k,螞蟻爬行速度為s,請根據所有螞蟻的初始位置求出全部螞蟻爬出木棍所用時間的最長和最短時間?當我第一眼看到這個題目的時候,我想到的是動態規劃型別的題目吧,然後嘗試用動態規劃的來求解該問題,想了好久,發現行不通,因為 我始終找不到...

螞蟻爬行問題

問題描述 n只螞蟻以每秒1cm的速度在長為lcm的竹竿上爬行。當螞蟻看到竿子的端點時就會落下來。由於竿子太細,兩隻螞蟻相遇時,它們不能交錯通過,只能各自反方向爬行。對於每只螞蟻,我們只知道它離竿子最左端的距離為xi,但不知道它當前的朝向。請計算所有螞蟻落下竿子的最短時間和最長時間。對於最短時間,我們...