汽车最少油耗穿越沙漠问题(Java源码)

例题:
一辆吉普车穿越1000km的沙漠,吉普车的总装油量为500加仑,耗油率为1加仑/km。由于沙漠中没有油库,必须先使用这辆车在沙漠中建立临时的油库(起点处吉普车满油)。若吉普车用最少的耗油量穿越沙漠,应在那些地方建立油库,以及各处所存储的油量。
问题分析:对于例题中的问题,只能有吉普车独立的来回运输油料并建立油库,同时需要考虑,吉普车的往返是需要耗油的。若是从前往后想的话,我们很难找出穿越沙漠规律,所以我们需要反方向的思考。因为题目要求的是“使用最少的耗油量来穿越沙漠”。所以我们从终点开始倒着往前推理出油点的位置以及其储油量就比较容易了。所以我们建立数学模型如下:
在这里插入图片描述
通过上面所述的数学模型,从终点开始分别间隔500,500/3,500/5,500/7,等等来建立储油点。
下面是Java版的源码

/**
 * 穿越沙漠问题
 *
 */
 public class CarDesert {
 public static void main(String[] args) {
  int dis = 500;//距离终点的位置
  int oil= 500;//储油量
  int num = 1;//油库数
  do{
   System.out.println("油库数:"+ num + " 行走的路程:" + (1000-dis) + " 储油量:" + oil);
   num++;
   dis += 500/(2*num-1);
   oil = 500*num;
  }while(dis <1000);
  oil = 500*(num-1) + (1000-dis)*(2*num-1);
  System.out.println("油库数:"+ num + " 行走的路程:0 " + " 储油量:" + oil);
 }
}

总结:
通过这道题目我们可以很清楚的认识到,对于一些问题,换一种方式很容易总结出他们的规律,从而更容易的解决问题。

猜你喜欢

转载自blog.csdn.net/qq_44247658/article/details/106234296
今日推荐