火車運煤問題

2021-10-01 05:59:51 字數 788 閱讀 7392

這個可能是乙個比較經典的智力題了,和以前的那個《賽馬問題》很相似,其題目如下:

你是山西的乙個煤老闆,你在礦區開採了有3000噸煤需要運送到市場上去賣,從你的礦區到市場有1000公里,你手裡有一列燒煤的火車,這個火車最多只能裝1000噸煤,且其能耗比較大——每一公里需要耗一噸煤。請問,作為乙個懂程式設計的煤老闆的你,你會怎麼運送才能運最多的煤到集市?

火車肯定要從起點出發3次(因為每次最多運1000);

火車前兩次回到起點要用完車上存煤(否則是浪費)。

初步方案:火車前兩次都運到某點x,卸下1000-2x,然後用x煤回去,第三次到x點時,車上有1000-x,然後裝上x點的煤,若3000-5x不超過1000,直接到終點,用3000-5x=1000的臨界條件算得x=400,這也是火車到達終點所剩下的煤。若3000-5x超過1000,此時與原問題類似,但初始煤變為3000-5x,路程變為1000-x,我們需要選擇下乙個存煤點,與x點距離y,然後在y點回頭一次。然後想到第三個特徵:

火車回程要盡可能短。使火車回頭的原因是火車容量為1000,理想狀況為火車每次出發都裝滿1000的煤,所以火車第三次到達x點時共有煤3000-5x=2000,求得x=200;火車第二次到達y點時站點有存煤1000-2y,火車有煤1000-y,共計2000-3y,理想狀況為2000-3y=1000,y=333,火車到達終點剩下煤1000-(1000-x-y)=533。

ps:思路:1.肯定是要運到某個點然後回來再拉,2.要區分出中間點有多少個,先假設1個,運到該點之後,剩下的一次性拉完,計算出乙個值,然後再假設2個,這樣到第二個點的時候,剩下的再一次性拉完。

火車運煤問題

本文章 xx公司的一道筆試題,煤礦有3000噸煤要拿到市場上賣,有一輛火車可以用來運煤,火車最多能裝1000噸煤,且火車本身需要燒煤做動力,每走1公里消耗1噸煤,如何運煤才能使得運到市場的煤最多,最多是多少?最優解 1,火車從煤礦出發3次,也即回來2次。這樣可以把3000噸都運出,回煤礦次數越多越費...

火車運煤問題

這個題的解答並不難,有很多都給出了答案,但是想說清楚道 理還是比較繞彎。如果想做程式設計做模擬,很簡單,但是一些邊界條件 中間過程都很繞,所以把這個不是程式設計題的程式設計題放在這裡解答一下,供參考。根據題意可知有三種運輸方式,分別是成本為5,成本為3,成本為1.下面簡稱t5,t3,t1.首先給出最...

火車運煤問題

3次 2次 1次 a 起點 b c d 終點 2次 1次 x y z 為什麼是5x 3y 2000?3000 1000 3,將3000噸煤運離原始地點,至少要運三次,因為運輸的次數越多燒掉的煤就越多,到終點時剩下的煤就越少,所以把煤運離起始地點一定是3次,也就是5x 往3次,返兩次 中間必須停在兩個...