您的位置:首页 > 编程语言

骆驼吃香蕉的问题

2011-10-09 22:15 639 查看
问题提出:

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

解题思路:

骆驼吃香蕉的问题

主要解决思路: 

①骆驼先载上1000个香蕉 走到某一处,然后放一些香蕉在路上某处。

再带上一些香蕉 边走边吃返回到起点 

②重复上述过程,直到还剩余香蕉全部都搬运到路上某处.

③最后重复①②过程

现在的问题就出现了 走到某处? 到底走到哪里呢?

一开始,有3000个香蕉 那么在通往终点的方向上的同一段路 要走3次

该段路程反方向要走2次

如果只剩了2000个香蕉 那么在通往终点的方向上的同一段路 要走2次

该段路程反方向要走1次

很显然 可以用剩余香蕉的数量来分隔。

从3000个香蕉到刚好剩余2000个香蕉 

消耗了1000个香蕉(骆驼行走路程为1000m)

在同一段路要走3+2=5 次

那么这段路只有 1000/5=200m 此时走过200m 剩余1000个香蕉

从2000个香蕉到1000个 

又消耗了1000个香蕉(骆驼行走路程为1000m)

根据上述推论 在在同一段路要走1+2=3 次

那么又走过1000/3=333.3m

最后剩余1000个

距离终点只有1000-200-333.3=466.7m

那么只用消耗467个香蕉

最后剩余1000-467=533个香蕉
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  编程