吉普车穿越沙漠问题
一辆吉普车来到1000km宽的沙漠边沿。吉普车的耗油量为1L/Km,总装油量为500L。显然,吉普车必须用自身油箱中设几个临时加油点,否则是通不过沙漠的。假设在沙漠边沿有充足的汽油可供使用,那末吉普车应在那些地方,建多大的临时加油点,才能以最少的油耗穿过这块沙漠,
你可以从简单一点的情形开始想起:
1、沙漠只有500公里或者更短,这时很简单,一次搞定。
2、沙漠600km,怎么办,我们需要保证的是:车到了离沙漠终点还有500km的地方,能恰恰加满油而且不会有任何多余,好了,
方案
气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载
其实很简单,从起点处加300升油,这300升油怎么用呢:开出100km,存下100升,剩下100升刚好使得汽车返回起点。再在起点处加满500升油,这时就可以一路狂奔了,当然,要记得开了100公里后,把存放在那儿的100升油也加上。(这时在起点的油一共是500,300)
3、我们先看看2的情况,符合这种情况的沙漠的最大距离是多少呢:答案是(500+500/3)公里。即在起点准备1000升油,第一次装500升,跑了500/3公里后存放500/3升油,然后返回起点,这时车里的油也正好用完,然后再在起点处装500升,跑了500/3公里后,把车内的(500,500/3)升油先放下,然后再一次性把500升油装入车中。一路跑吧。
4。当沙漠的距离超过了(500+500/3)km(但又超过得不多)又当如何,这时我们可以把前面的(500,500/3)km看成一段整体,需要保证的是:在距离沙漠终点(500+500/3)km处恰恰有1000升油(由3的分析可知)。怎么来保证呢,我们假设沙漠的距离只比(500,500/3)多了1公里,因为汽车的容量是500升,所以1000升油最少从起点装3次油才能倒满(具体情况你可以自己想想)。除了3次装油,还有两次折回,所以往返正好有5次,这5次的能保证的距离是500/5,所以这时我们又把沙漠的距离延伸到了:(500+500/3+500/5),起点应该储备1500升油。
5。当沙漠的距离超过了(500+500/3+500/5)公里,我们要保证的是在距离沙漠终点(500+500/3+500/5)公里的地方有1500升油。。。。。。。。
一路往下,总有某一个值使得fdis =(500+500/3+500/5+..+500/(2k-1))<1000,但是
(500+500/3+500/5+..+500/2k-1+500/(2k+1))>1000,应该在起点准备多少油呢,这时多了一小段出来,很像情形2的分析了,说白了,在起点准备的油应当是:(1000 - fdis)*往返次数 + k*500。
源代码:
#include "stdafx.h"
#include
using namespace std;
const float des = 1000 ;//沙漠长度
const float car = 500; //汽车耗油
int main()
{
float temp = 0;
for(int i = 0; temp < des; i++)
{
temp += car/(2*i + 1);
}
float *seg = new float[i]; //各个存储点距离终点的距离
float *oil = new float[i]; //这些点的存油量
seg[0] = car; //距离终点500公里处是一个存储点
oil[0] = car; //这点存油500升
//计算各个存储点离终点的距离和存油量
for(i = 0;seg[i] < des; i++)
{
seg[i+1] = seg[i] + car/(2*i + 3);
oil[i+1] = oil[i] + car;
}
//在起点处的一小段的存油量
seg[i] = des;
oil[i] = oil[i-1] + (des - seg[i-1])*(2*i + 1);
for (int j = 0;j<= i;j++)
{
cout<< seg[j] <<" "<
本文档为【吉普车穿越沙漠问题】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。