《火车运煤问题》分析

简介:

 作者:陈太汉

《火车运煤问题》分析

  题目内容:

    你是山西的一个煤老板,你在矿区开采了有3000吨煤需要运送到市场上去卖,从你的矿区到市场有1000公里,你手里有一列烧煤的火车,这个火车最多只能装1000吨煤,且其能耗比较大——每一公里需要耗一吨煤。请问,作为一个懂编程的煤老板的你,你会怎么运送才能运最多的煤到集市?

    这是我在《酷壳》看到的一个面试题,主要是被陈浩的几句话给吸引了,还有就是哥比较喜欢思考,想证实一下哥是否适合做程序。

  火车运煤问题分析

    表面上看这个问题很难实现,因为火车最多只能载1000吨煤,而行驶1000公里刚好把火车上的1000吨煤烧光。等我们认真思考之后会发现,可以分段运输。如先运1000吨煤行驶100公里,放下800吨再返回,再运1000吨煤到100公里处,此时车上还有900吨,再加上100吨煤,车上就有1000吨煤,离终点还有900公里,到终点的时候还剩100吨煤。

    老实说哥没有天才的IQ,我先是边看《单身男女》边思考这个问题,差不多用了1个小时没有得出一个结果,也没有弄懂怎么来的5x+3y=2000 (y<=1000/3),以及求x+y的最大值, 回家在吃饭的时候又突然想起这个问题,又边吃饭边思考这个问题,有时放下碗在本子上画画,差不多用了四五十分钟,哥突然明白了5x+3y=2000,其实应该是5x+3y>=2000,当然也就明白了x+y的最大值,几分钟之后哥又明白了5x>=1000, 最后得出x=200,y=333.333333时x+y得出最大值533.33333333。

                                     -->3次                                     -->2次                                        -->1次

     A(起点)--------------------------------B----------------------------------C-----------------------------D(终点)

                                  <--2次              <--1次

              |--------------------X-------------------|---------------Y------------------|--------------Z--------------|

    为什么是5x+3y>=2000?

      3000/1000=3,将3000吨煤运离原始地点,至少要运三次,因为运输的次数越多烧掉的煤就越多,到终点时剩下的煤就越少,所以把煤运离起始地点一定是3次,也就是5x(往3次,返两次)。中间必须停在两个地方(B,C)将煤放下,因为到C处的时候,车上的煤最大只能有1000吨,因为火车最多只能运1000吨,多了运不了,用两次运肯定是不可能的。所以从A到C至少烧了3000-1000=2000吨煤,即5x+3y>=2000.

    为什么是x+y的最大值?

      在C处剩余的煤最多只有1000吨,离终点越近剩下的煤就越多,所以在x+y取最大值的时候,剩下的煤最大。即剩下的煤=1000-Z=1000-Z=1000-(1000-(x+y))=x+y

     为什么是5x>=1000?

       同理在B处最多还剩2000吨煤,因为在B处时煤的数量还大于2000时,将这2000多吨煤运离B处至少要三次,三次的情况,我们就认为是A-->B,所以在B处至多只能要剩2000吨,即5x>=3000-200=1000.

    可能有人会问为什么是3次、2次、1次,而不是3次、一次,同样按照上面的分析,你可以得出3次、1次的情况最多剩余400吨。

    5x+3y>=2000

    5x>=1000

    求x+y的最大值?


本文转自啊汉博客园博客,原文链接:http://www.cnblogs.com/hlxs/archive/2011/06/02/2068366.html

目录
相关文章
|
6月前
|
传感器 机器学习/深度学习 存储
植保机器人生长数据记录与分析
植保机器人生长数据记录与分析
89 3
|
C++
201609-2 火车购票
201609-2 火车购票
96 0
201609-2 火车购票
|
传感器 算法 iOS开发
Cuptime 2 智能水杯:从数据到游戏,为了让你健康喝水也是操碎了心|评测
麦开一直以来与国内很多智能硬件公司比较不一样,那就是研发的产品几乎都是原创的,而且获得的成绩也不错,这点都比较难得。Cuptime就是其代表作之一,智能水杯可是麦开首创的产品,当时连国外也没有这种产品,一年销售了超过10万台,后面很多智能水杯产品或多或少的也在参考Cuptime。
431 0
Cuptime 2 智能水杯:从数据到游戏,为了让你健康喝水也是操碎了心|评测
|
传感器
穿科技︱GOW智能T恤衫:时刻记录生命特征
穿科技︱GOW智能T恤衫:时刻记录生命特征
穿科技︱GOW智能T恤衫:时刻记录生命特征
|
机器学习/深度学习 传感器 人工智能
开车出门没处停?未来可用AI实时预判空车位
结合停车情况、交通状况、道路特征、天气和网络拓扑结构,最终通过深度神经网络方法预测短期内的停车位占用
360 0
“洞察”号探测器成功着陆火星,首次揭秘火星内部结构
值得一提的是,这一次“洞察”号不光执行探测任务,还带去了240多万个地球人的名字,它们被载入一块芯片中,跟随探测器登陆上了火星。
430 0
时隔200多天后,“洞察号”火星探测器即将着陆火星表面
即使NASA已经拥有7次火星着陆经验,对待此次“洞察号”的着陆也不能掉以轻心。
455 0