飛機的加油問題

2021-08-30 06:50:46 字數 2395 閱讀 2855

關於飛機加油問題:

1.首先確定問題可以求解。

要使所有飛機安全飛回那麼,加油點之間的距離肯定不能超過1次加滿油飛行的距離。

可以肯定加油點除了 1/2處不能設定外,其餘各點都可以設定加油點。(理由見後面)

於是問題有解。

2.假設飛機從按照逆時針,從東飛到西。

有n架飛機同時起飛。

地球一圈長度為f

對逆時針飛行加油點。

第k架在x[k]處返回。

y[k]是從x[k-1]處開始飛行到有飛機折回的距離

如下關係如下:

x[1]= y[1];

x[2]= x[1]+y[2];

x[3]= x[2]+y[3];

x[k]= x[k-1] + y[k];(k=1,2,3...n-1);

x[k] < 0.5f;

k的最大取值是 n-1因為 2臺飛機只能一次油,3臺飛機最多可以加兩次油。

要保證飛機能飛最遠,就是使每一架飛機在折回後不折回的飛機的油是滿的。

所以有:

0.5f - 2*y[1] = (n-1)*y[1];

0.5f - 2*y[2] - x[1] = (n-2)*y[2];

0.5f - 2*y[3] - x[2] = (n-3)*y[3];

0.5f - 2*y[k] - x[k-1] = (n-k)*y[k];(k=1,2,3...n-1);

變形一下

0.5f = (n-1+2)*y[1];

0.5f = (n-2+2)*y[2] + x[1];

0.5f = (n-3+2)*y[3] + x[2];

0.5f = (n-k+2)*y[k] + x[k-1] ;

(k=1,2,3...n-1);

解出 x[k]的表示式:

x[1] = y[1] = 0.5f/(n+1) ;

x[2] = 0.5*2/(n+1);

x[3] = 0.5*3/(n+1);

....

x[k] = 0.5f*k/(n+1);

由於 x[k] 必須小於 0.5f 否則誰都不願意開那架飛機了。

就是說 k/(n+1) 只須小於 1即可(但不能等於1),

要想使x[k]盡量遠,那麼就要保證 k/(n+1)盡量大。

k和n都比必須使正數。而且k最大只能取 n-1

所以k=n時,k/(n+1) = (n-1)/(n+1)

這時可知,n趨向於無窮大時,(n-1)/(n+1) 趨向於1,

(而且也可以得知 n越大k才能越大)

因此加油點可以遍布整個右半球,但是1/2點處不能到達。

對順時針飛行加油點。

同樣的思考方式。同樣的結果。

同時還有結論:

根據 y[k] = x[k] - x[k-1] = 0.5f/(n+1)

可知:n越多,那麼加油站點之間的距離就會越小(得到加油站點之間距離表示式跟次數無關的無關的結論我也很詫異)。

由前面的推論:

x[k] = 0.5f*k/(n+1);

可知最遠的加油站是

x[k] = 0.5f*(n-1)/(n+1);

他也只和 n相關。

所以 x[k] 越遠他需要的 飛機數量越多。

由於飛機滿油能飛,0.5f所以要想達到最優化,

就要使飛機落在0.5f裡面的區域的每一點都比區域外面的點的需要的飛機數要少(假定在需要比較的點設定加油站的話)

由於兩邊都是對稱的,而且從出發點到地球的另一端點的過程種,各點(如果要設定加油站的話)需要的飛機數使遞增的。

所以,我們可以輕鬆的推定,0.5f 均勻的分布在地球另一端點的兩邊。(這部分也可以用證明,時間關係,暫略)

所以只需要在兩個方向安排同樣數量n的飛機布置最遠的加油點在離出發點 1/4 f的地方或更遠一點就可以了。

問題演變成

x[k] >= 1/4 f

x[k] < 0.5f

取 k的最小整數值

x[k] 的最遠點的表示式是 x[k] = 0.5f*(n-1)/(n+1);

也即0.5f*(n-1)/(n+1) >= 1/4 f

0.5f*(n-1)/(n+1) < 0.5fn>0

求最小的 n

解之得n >= 3

所以n得最小取值是3

也就是 需要 6架次。 但最少只需要3架飛機。

過程如下:

逆時針起飛第一次加油點在 x[1] = 1/8 f處。然後有一架飛機返回。

第二次加油在 x[2] = 1/4 f處,一架飛機返回。

在逆時針飛行的飛機飛過 0.5f 處時,順時針派出3架飛機,(可以重用以前的飛機,如果允許的話)

第一次加油處也是 1/8 f 一架飛機飛回

第二次在1/4f 同時 逆時針飛行的飛機也到達,將油均分後每個飛機一半的油。同時飛回來。

可以抵達出發點。

飛機加油問題

已知 每個飛機只有乙個油箱,飛機之間可以相互加油 注意是相互,沒有加油機 一箱油可供一架飛機繞地球飛半圈,問題 為使至少一架飛機繞地球一圈回到起飛時的飛機場,至少需要出動幾架飛機?所有飛機從同一機場起飛,而且必須安全返回機場,不允許中途降落,中間沒有飛機場 答案 最小需要5架飛機。思路 a 起飛點 ...

飛機加油問題

題目描述 一道關於飛機加油的問題,已知 每個飛機只有乙個油箱,飛機之間可以相互加油 注意是相互,沒有加油機 一箱油可供一架飛機繞地球飛半圈,問題 為使至少一架飛機繞地球一圈回到起飛時的飛機場,至少需要出動幾架飛機?所有飛機從同一機場起飛,而且必須安全返回機場,不允許中途降落,中間沒有飛機場 答案 共...

關於飛機加油問題

1.首先確定問題可以求解。要使所有飛機安全飛回那麼,加油點之間的距離肯定不能超過1次加滿油飛行的距離。可以肯定加油點除了 1 2處不能設定外,其餘各點都可以設定加油點。理由見後面 於是問題有解。2.假設飛機從按照逆時針,從東飛到西。有n架飛機同時起飛。地球一圈長度為f 對逆時針飛行加油點。第k架在x...