基礎算法----手電筒過橋

出題

有四我的要在夜裏穿過一條懸索橋回到宿營地。但是他們只有一支手電,電池只夠再亮17分鐘。過橋必需要有手電,不然太危險。橋最多隻能承受兩我的 同時經過的重量。這四我的的過橋速度都不同:一個須要1分鐘,一個須要2分鐘,一個須要5分鐘,還有一個須要10分鐘。他們如何才能在17分鐘以內所有 過橋?

思考幾秒鐘。算法

其實這道題同以前小島上的和尚並非一道算法題,只不過這道題裏面算法成分貌似多一些,可是個人理解反而仍是一道計算機思惟題。.net

這道題背後有一個條件:code

  • 手電筒須要有人傳遞;

因此基於時間考慮,咱們但願傳遞手電筒的過程最快,因此傳遞手電筒的工做會交到1分鐘和2分鐘人的手裏。blog

同時爲了任務之間等待差最小,咱們考慮讓5分鐘和10分鐘的人在一塊兒過橋,這樣產生的浪費最小。get

因而獲得結果:計算機

  1. 1分鐘和2分鐘一塊兒過橋,這樣須要傳遞手電筒的時間最短。(2分鐘)
  2. 1分鐘返回將手電筒交給5分鐘和10分鐘的人一塊兒過橋。(1分鐘+10分鐘)
  3. 手電筒須要回到1分鐘這邊,這是讓2分鐘的人送過來。(2分鐘)
  4. 1分鐘和2分鐘一塊兒過橋。(2分鐘)

這樣獲得的結果是17分鐘,其實1分鐘和2分鐘人的工做能夠互相交互,不影響結果。時間

因此咱們知道這道題不是一道算法題,若是非要靠到算法上,應該是一道有條件的窮舉吧。思考

相關文章
相關標籤/搜索