您的位置:首页 > 其它

【智力题】飞机加油问题

2013-10-08 14:54 351 查看
已知: 每个飞机只有一个油箱, 飞机之间可以相互加油(注意是相互,没有加油机) 一箱油可供一架飞机绕地球飞半圈,

问题:为使至少一架飞机绕地球一圈回到起飞时的飞机场,至少需要出动几架飞机?(所有飞机从同一机场起飞,而且必须安全返回机场,不允许中途降落,中间没有飞机场)

参考答案:3架飞机、5架次;飞行方案:A、B、C同时从机场出发,飞至1/8处,C给A、B分别加上1/8的油,自身还剩下1/8的油,C安全返回机场;A、B同时飞至1/4处,B给A加上1/8的油,自身还剩下1/4的油,B安全返回机场;A独自飞至1/2处,此时B从机场(逆向)起飞;A和B同时飞至3/4处,B给A加上1/8的油,自身还剩下1/8的油,此时C从机场(逆向)起飞;A、B、C同时飞至7/8处,C给A、B同时加上1/8的油,此时A、B、C均有1/8的油,A、B、C均能安全返回机场。

扩展思考:在直线飞行的情况下,一架飞机载满油飞行距离为1,n架飞机最远能飞多远?

第n架飞机剩的油*2(往返消耗油量)+其他n-1架飞机消耗油的总量=第n架飞机携带油的总量,所以这n架飞机共同飞了1/(n+1),那么:

参考答案:1架飞机:1;2架飞机:1+1/3;3架飞机:1+1/4+1/4;…可推得n架飞机:1+(n-1)/(n+1) = 2n/(n+1)

扩展思考:在直线飞行的情况下,不要求返回机场,一架飞机载满油飞行距离为1,n架飞机最远能飞多远?

第k架飞机剩的油=前k-1架飞机消耗油的总量,所以这k架飞机共同飞了1/k,那么:

参考答案:1架飞机:1;2架飞机:1+1/2;3架飞机:1+1/2+1/3;…可推得n架飞机:1+1/2+1/3+..+1/n

一辆载油500升的汽车从A开往1000公里外的B,已知汽车每公里耗油量为1升,A处有无穷多的油,其他任何地点都没有油,但该车可以在任何地点存放油以备中转,问从A到B最少需要多少油?

最少耗油的要求,先得有几个前提: 1.汽车到达终点时油箱是空的。2.路上的每一个中转点都没有剩下油。

现在画一个数轴,代表起点到终点的路径,在这个数轴上取m个点,分别记为X(1),X(2),...,X(m)。X(i)表示第i个点到终点的距离。1号点为起点,m号点为终点。所以有X(1)=0,X(m)=1000。设汽车油箱的容量为A,由题目可知A=500。设S(i)表示在第i最少存放多少升油,那么显然S(m)=0,而我们要求的就是S(0)。再设n(i)为从第i-1点到第i点需要的往返次数(注意,一去一回代表一次往返)。好,以上就是需要定义的一些符号,

下面开始推导过程:

从i-1点往i点运油时,最节省的情况是从i-1点出发时应该油箱装满油,然后在i点放下油后回到i-1点时油箱是空的,这时候运油的

效率是最高的。所以有: S(i) = A - [X(i)-X(i-1)] + {A - 2*[X(i) - X(i-1)]}*n(i)。

上式中A - [X(i)-X(i-1)]是最后一次从i-1点到i点油箱中剩下的油;{A - 2*[X(i) - X(i-1)]}*n(i)表示在n(i)次往返过程中总共 在i点存下的油。把上式化简合并一下得到式(1):

S(i) = [n(i) + 1]*A -[2*n(i) + 1]*[X(i) - X(i-1)] -----(1)

又因为到第i点存下的油等于第i-1点存下的油减去从i-1点到i点的总损耗,而从i-1点到i点的总损耗为[2*n(i) + 1]*[X(i) - X(i-1)],所以有下式:

S(i) = S(i-1) -[2*n(i) + 1]*[X(i) - X(i-1)]。

把(1)式带入上式则可得到式(2-1):

S(i-1) = [n(i) +1]*A -----(2-1)

同理有式(2-2)

S(i) = [n(i+1) +1]*A -----(2-2)



用(2-1)减去(2-2)得到式(3):

S(i-1) - S(i) = [n(i) -n(i+1)]*A -----(3)

因为S(i-1) - S(i)表示的是从i-1点到i点的总损耗,而A是固定值,所以由(3)式得知,要使总损耗最小,就需要n(i) - n(i+1)最小

,因为S(i-1) - S(i)必然>0,所以n(i) - n(i+1)>0,且n[i]是整数,所以就有min([n(i) - n(i+1)]) = 1。所以有式(4):

n(i) - n(i+1)= 1==> n(i) = n(i+1) + 1 -----(4)

把式(4)代入式(2-2)就得到式(5):

S(i) =n(i)*A -----(5)

再把式(5)代入式(1)并化简就可以得到式(6):

X(i) - X(i-1) =A/[2*n(i) + 1] -----(6)

X(i) - X(i-1)表示的相邻两点之间的距离,所以显然要达到终点的话就必须有:



又因为n(m)=0,即从最后一个中转点到终点是不需要往返的。再由式(4)就有:n(m-1) = 1,n(m-2) = 2, …,即有n(i) = m-i成立。我们从终点往起点回退,再由上式就有:



所以求出来m=8。但是m=8时,求出来的和 约等于1010.9比1000大,所以不能由式(5)直接算S(0),而应该先算S(1) = (m-1)*A = (8-1)*500 = 3500升。也就是说在第一个中转点应该要存3500升油。然后再算从第0点到第1点的损耗,由前面的计算我们可以得到X(1) = 1000 – (500 + 500/3 + 500/5 + 500/7 + 500/9 + 500/11 +500/13) ≈ 22.433米。

所以从第0点到第1点的总耗损可以由前面的总损耗公式[2*n(i) + 1]*[X(i) - X(i-1)]求出: [2*n(1) + 1]*(22.433- 0) = (2*7 + 1)*22.433 = 336.495

所以总耗油量就约为 3500 + 336.495 = 3836.495升。



题目可归结为求数列 an=500/(2n+1) n=0,1,2,3......的和Sn什么时候大于等于1000,解得n> 6   当n=6时,S6=977.57

所以第一个中转点离起始位置距离为1000-977.57=22.43公里

 所以第一次中转之前共耗油 22.43*(2*7+1)=336.50升

  此后每次中转耗油500升

  所以总耗油量为7*500+336.50=3836.50升

但题目如果是:
汽车油箱容量为1,开始道路上没有加油站,但可以在任意位置建,加油站初始没有油,汽车经过一个加油站时可以将油箱里一部分油存到加油站。问汽车最少要往回返多少次能到终点?

往返两次,如果采用接力的形式:
假设第一段为x, 第二段为y,最后冲刺z,由于是接力形式,那么3(x+y)+z==2,使得x+y+z最大,同时z<=1,即(x+y)>=1/3,欲x+y+z最大,必须x+y=1/3,这样和只往返一次的效果是相同的。。。最多只能冲刺4/3

同样假设第一段为x,第二段为y,最后冲刺z,不采用接力的形式,即到达y后重新返回起点,那么1-2(1/3+y) = y,即冲刺到x=1/3的位置时加满油,遇到下一个再次把油补满,此时可以冲刺1+1/3+1/9

所以。。。上面的公式不完全适用。。。。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: