一辆吉普车来到1000km宽的沙漠边沿。吉普车的耗油量为1L/km,总装油量为500L。显然,吉普车必须用自身油箱中的油在沙漠中设几个临时 加油点,否则是通不过沙漠的。假设在沙漠边沿有充足的汽油可供使用,那么吉普车应在哪些地方、建多大的临的加油点,才能以最少的油耗穿过这块沙漠?
1.为使油量消耗最少:每次出发的时候,汽车的装油量必须装满,所以每一个加油点的存油量都是汽车总装油量500L的整数倍,即500k
2.从终点倒推考虑:如果从开始点考虑的话,由于很难确定它的第一个加油点的位置,所以我们从终点出发,因为要使油耗最少,所以最后一个加油站设置的位置在距离终点500km的位置,这样最后一次刚好走完整个沙漠。
# 一辆重型卡车欲穿过1000公里的沙漠,卡车耗油为1升/公里,卡车总载油能力为500公升。
# 显然卡车一次是过不了沙漠的。因此司机必须设法在沿途建立几个贮油点,使卡车能顺利穿越沙漠
# 试问司机如何建立这些贮油点?每一贮油点应存多少油,才能使卡车以消耗最少油的代价通过沙漠?
def car():
dis=500
oil=500
k=1
while dis<1000:
print('储油点:',k ,'距离出发点',round(1000-dis,3))
print('储油量',oil)
k=k+1
dis=500/(2*k-1)+dis
oil=500*k
dis=dis-500/(2*k-1)
oil=500*(k-1)+(1000-dis)*(2*k-1)
print('总耗油量',round(oil,3))
car()