目錄表

半夜過橋(Bridge and Torch Problem)

問題一

有一座橋沒有路燈每次只能有兩個人通行, 半夜過橋沒燈會怕怕, 現在有五個人, 他們過橋的速度分別是 1, 3, 6, 8, 12 分鐘, 他們只有一盞可以點燃 30 分鐘的燈籠, 如何才能讓這五個人順利過橋呢?

imag1641.jpg

問題二

當有六個人過橋速度分別是 2, 3, 8, 15, 18, 19 他們至少要花幾分鐘過橋呢?

# perl math03.pl 6 0 2 3 8 15 18 19
People Cost List:
1:(2) 2:(3) 3:(8) 4:(15) 5:(18) 6:(19)
Finish..100000!
Finish..200000!
Finish..300000!
Total Case:324000
Min. Cost :53

問題三

當有七個人過橋速度分別是 4, 8, 8, 9, 9, 9, 13 他們至少要花幾分鐘過橋呢?

# perl t.pl 7 3 4 8 8 9 9 9 13
People Cost List:
1:(4) 2:(8) 3:(8) 4:(9) 5:(9) 6:(9) 7:(13)
Guess Min. Cost:76
Total Time:29 sec
Min. Cost :76

推論公式

產生的程式碼

https://svn.ichiayi.com/opensvn/opentrysoft/math/math03.pl

產生的結果

  • 三個人過橋
  • 四個人過橋
  • 五個人過橋
  • 六個人過橋
  • 七個人過橋
載入中 ...

三個人過橋

呈現所有過程資訊, 隨機提供三個人的過橋時間

# perl math03.pl 3 2
People Cost List:
1:(13) 2:(20) 3:(2)
[000](0) - L:[ 1 2 3 ] R:[ ]
[1, 2] -> (0)+(20)
        [110](20) - L:[ 3 ] R:[ 1 2 ]
<- [1] (20)+(13)
                [010](33) - L:[ 1 3 ] R:[ 2 ]
[1, 3] -> (33)+(13)
                        [111](46) - L:[ ] R:[ 1 2 3 ]
Finish..1! (46)
<- [2] (20)+(20)
                [100](40) - L:[ 2 3 ] R:[ 1 ]
[2, 3] -> (40)+(20)
                        [111](60) - L:[ ] R:[ 1 2 3 ]
Finish..2! (60)
[1, 3] -> (0)+(13)
        [101](13) - L:[ 2 ] R:[ 1 3 ]
<- [1] (13)+(13)
                [001](26) - L:[ 1 2 ] R:[ 3 ]
[1, 2] -> (26)+(20)
                        [111](46) - L:[ ] R:[ 1 2 3 ]
Finish..3! (46)
<- [3] (13)+(2)
                [100](15) - L:[ 2 3 ] R:[ 1 ]
[2, 3] -> (15)+(20)
                        [111](35) - L:[ ] R:[ 1 2 3 ]
Finish..4! (35)
[2, 3] -> (0)+(20)
        [011](20) - L:[ 1 ] R:[ 2 3 ]
<- [2] (20)+(20)
                [001](40) - L:[ 1 2 ] R:[ 3 ]
[1, 2] -> (40)+(20)
                        [111](60) - L:[ ] R:[ 1 2 3 ]
Finish..5! (60)
<- [3] (20)+(2)
                [010](22) - L:[ 1 3 ] R:[ 2 ]
[1, 3] -> (22)+(13)
                        [111](35) - L:[ ] R:[ 1 2 3 ]
Finish..6! (35)
Total Case:6
Min. Cost :35

結論