zoukankan      html  css  js  c++  java
  • 骆驼吃香蕉问题

    骆驼吃香蕉的问题

        一共3000个香蕉,骆驼每次只能运送1000只,要送到1000里之外,并且骆驼每走1里要吃一个香蕉,问怎么走才能使剩下的香蕉最多。


    主要解决思路:  
    ①骆驼先载上1000个香蕉 走到某一处,然后放一些香蕉在路上某处。
    再带上一些香蕉 边走边吃返回到起点  
    ②重复上述过程,直到还剩余香蕉全部都搬运到路上某处.
    ③最后重复①②过程

    现在的问题就出现了 走到某处? 到底走到哪里呢?
    一开始,有3000个香蕉 那么在通往终点的方向上的同一段路 要走3次
    该段路程反方向要走2次
    如果只剩了2000个香蕉 那么在通往终点的方向上的同一段路 要走2次
    该段路程反方向要走1次

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

    从3000个香蕉到刚好剩余2000个香蕉  
    消耗了1000个香蕉(骆驼行走路程为1000m)
    在同一段路要走3+2=5 次
    那么这段路只有 1000/5=200m 此时走过200m 剩余2000个香蕉

    从2000个香蕉到1000个  
    又消耗了1000个香蕉(骆驼行走路程为1000m)
    根据上述推论 在在同一段路要走1+2=3 次
    那么又走过1000/3=333.3m

    最后剩余1000个
    距离终点只有1000-200-333.3=466.7m
    那么只用消耗467个香蕉
    最后剩余1000-467=533个香蕉

  • 相关阅读:
    AutoCAD.NET 二次开发(一) 自定义菜单及自动加载
    WSS 3.0部署备忘 一
    WSS 3.0部署备忘 四
    WSS 3.0部署备忘 三
    WSS 3.0部署备忘 二
    loj_1042
    loj_1045
    vim的学习笔记(3)
    Linux的磁盘与文件管理系统(1)
    文件与文件系统的压缩与打包
  • 原文地址:https://www.cnblogs.com/allenzhaox/p/3201843.html
Copyright © 2011-2022 走看看