骆驼吃香蕉的问题
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个香蕉
你是山西的一个煤老板,你在矿区开采了有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个香蕉