听说有好多胡萝卜 

---------------

从前有一头叫做哈斯卡的小毛驴,它勤劳而善良,快乐又聪明.有一天小毛驴听说一千公里外的兔子国胡萝卜绝收了.心地善良的哈斯卡决定将自己今年收获的胡萝卜捐给兔子国.由于不信任红十字会,所以它决定亲自穿过一千公里的沙漠,将自己的三千根胡萝卜驮运到兔子国去.可是小毛驴也是驴,也要吃东西,每走一公里就不得不吃掉一根胡萝卜,而且它还是个孩子,每次最多就能驮一千根胡萝卜,怎样才能将自己的胡萝卜最多的留给兔子们呢?

首先,小驴不可能带1000胡萝卜直接奔向兔子国,这样到最后不仅一个胡萝卜没带过去,没运送的2000胡萝卜也会在没人的角落默默晒成萝卜干.

其次,小驴不可能拿出个小棒棒身手一挥,于是奥特曼附体,一下驼起3000胡萝卜,并且一口气走了1000公里,因为这里是天朝不是日本.

然后,小驴也不可能投箸于席,奋袂而起,半日行军一千里.

最后,小驴更不会装傻卖萌:"啥是胡萝卜啊?"

于是,哈斯卡现在陷入了思考。

小毛驴的爆发

--------------

小学时候曾经遇到过这样的数学题:

AB两人分别从甲乙两地同时出发相向而行,甲乙距离为L,而AB两个人的速度为X1,X2,出发时,甲旁边有一条小狗以大于X1,X2的速度X3向乙跑去,遇到乙时候迅速返回再向甲跑去,遇到甲再折回跑向乙,如此反复,问: 甲乙两人相遇时,小狗一共跑了多少距离? 初一看觉得这个问题貌似非常复杂,其实解决这个问题的关键在不要纠结于每次小狗折回奔跑的距离的变化,而要抓住实质性的东西,即: 小狗恒定的速度和奔跑时间.

小驴运胡萝卜的问题和上面这个问题有异曲同工之妙,小驴每公里吃一根胡萝卜,所以小驴最终剩下的胡萝卜其实取决于小驴走的路程,所以这个问题其实要求的是有限定条件下的最短路径.这个限定条件毫无疑问就回到了胡萝卜身上。

再回到胡萝卜的问题上来,小驴每次最多驼1000的胡萝卜,每走1km消耗1根胡萝卜,要想活下命来,它每次走的距离都应在1000根胡萝卜的消耗内,由于出发时候胡萝卜总量大于1000,所以小驴必须走到一个距离出发点为X的地方折回搬剩下的胡萝卜,由此我们得到第一个条件:

2X<1000km        (a)

显然(a)这个条件是远远不够解决问题的,一共3000根胡萝卜,求的这个问题的关键就在于意识到,既然求最小消耗,就在第一个1000根胡萝卜消耗完的时候第一次最优策略:即完成对3000根胡萝卜的第一次搬迁.让我们对小驴消耗第一个1000根胡萝卜这个过程仔细分析一下:

1:  小驴出发时候先拖1000根胡萝卜到X点,消耗X根胡萝卜,X点剩余1000-X
2.   小驴带X根胡萝卜返回出发点, X点剩余1000-2x
3.   小驴驼1000胡萝卜到X点,消耗X根, X点剩余2000-3X
4.   小驴带X根胡萝卜返回出发点,X点剩余2000-4X
5.   小驴驼1000胡萝卜到X点,消耗X根, X点剩余3000-5X.

由于是在消耗第一个1000根胡萝卜的时候到达X点,即最后剩余应为2000胡萝卜,所以有:

5X=1000  -->X=200  即小驴应第一次在距离出发点200km的地方停留.
然后小驴从X点继续出发,由于剩余2000根胡萝卜,小驴不能一次驼完,所以与过程以相似,只不过这次小驴只需要两次就可以驼完,假设第二次停留点为Y点:

1.小驴第一次出发驼1000胡萝卜到Y点,消耗Y根胡萝卜,Y点剩余1000-Y胡萝卜,
2.小驴第一次返回X点,Y点剩余1000-2Y胡萝卜
3.小驴第二次出发驼1000胡萝卜,到达Y点,消耗Y根胡萝卜,最后Y点剩余2000-3Y胡萝卜
和过程一相似,此时有等式 3Y=1000, 即:Y=333.3
此时小驴恰好还剩1000胡萝卜,而距离目的地兔子国还有1000-200-333.3=466.3km
所以这次小驴 可以一次性的驼过去,最后达到兔子国的时候还剩下(1000-466.3)=534根胡萝卜(是否取整取决于小毛驴的胡萝卜是在每开始新的一公里时候吃还是结束新的一公里时候吃,这里取整。)

新的开始 

--------------

小驴l略为一爆发,困惑到此就已经结束.它成功将最大量的胡萝卜送到了兔子国,收到了兔子国国王的奖励,小驴对子兴奋异常,关于这个奖励我们下次再谈.
功臣小驴在兔子国四处溜达,不巧遇到了一只叫做程序猿的猴子,程序猿普普通通,不求闻达,快快乐乐的生活着,当然除却偶尔的加班到天亮的悲催。由于小毛驴很高兴,也希望猴子跟着一块分享它的快乐,于是给它讲了它是如何运送胡萝卜的.猴子听后叶惊奇不已,却不料,忽然小驴挠了挠头,一拍大腿,撂了撂蹄子,对猴子喊:
"HI,大猴子,你不是程序猿嘛,你能用你的程序解决我的难题么?"
程序猿作为工业革命的新物种,人类科技研究上的一种重新演变,并且拥有无与伦比的耐力、超越时代的智商、横穿社会的苦逼相和低于人类平均寿命的优良特点,听到这个顿时也很感兴趣:“不过今天确实有点晚了,又到了睡觉时间了,明天抽空再来我的方式解决这个问题吧”
小驴打了打哈欠说:"那就明天吧,今天我也困了,要好好休息了,明天我还要去拿奖励呢"
猴子连忙问:"国王奖励你了什么啊?"
小驴四周瞧了瞧,招呼猴子凑过来,然后悄悄在猴子的耳边说:"保密!"
      这你丫的!

转载于:https://www.cnblogs.com/songsz1/archive/2012/08/15/2639362.html

脑力风暴之小毛驴历险记(1)----好多胡萝卜(上)相关推荐

  1. 脑力风暴之小毛驴历险记(1)----好多胡萝卜(下)

    "我是人类工业革命后的新物种,科技研究上的奇葩,人类DNA的重新突变进化,拥有无与伦比的耐力.超越时代的智商.横穿社会的苦逼相和低于人类平均寿命等显著优点." 每次遇到一个人,程序 ...

  2. 脑力风暴之小毛驴历险记(3)---低进高出的小鸡(上)

    极富盛名的面试题 此时恰逢双节将至,到处多多少少都有一点的气氛,虽不至于欢天喜地,逢面就谈论的节日计划到处都能听到的.小毛驴初来乍到,倒也渐渐熟悉了此地风俗.今天闲了下来,几块月饼下肚,便觉得有点胃胀 ...

  3. 脑力风暴之小毛驴历险记(2)---谁敢动我的金币(上)

    海盗分金 ------------------------------------  进城的路远离大道,绕过一片小树林.有点荒凉偏僻,但走到一半的时候竟听到路边的树林里一群人吵吵闹闹,仿佛开会一般.偏 ...

  4. 脑力风暴之小毛驴历险记(2)---谁敢动我的金币(上).

       海盗分金 ------------------------------------  进城的路远离大道,绕过一片小树林.有点荒凉偏僻,但走到一半的时候竟听到路边的树林里一群人吵吵闹闹,仿佛开会一 ...

  5. 脑力风暴之小毛驴历险记(2)---谁敢动我的金币(下)

    盲目扩张团队时的强盗博弈 如前所知: 5人下决策者的最优策略(最后一人为决策者): (H1,H2,H3,H4,H5)-->( 1,0,1,0,98) 依照前面的推理,那么第6人的最优策略为: ( ...

  6. Wpf 脑力风暴游戏开发

    今天给大家带来一个wpf的新项目,叫做脑力风暴,具体就是考验你记忆力的一个应用,一个格子刚开始时有四张图片,并且两个两个相同,当点击相同的时候,会消失,当通过之后就会成为九张图片,以此类推,玩法就介绍 ...

  7. 寒假——练车、脑力风暴和辅导初中生

    今年寒假除了完成寒假作业,我将大部分时间都用在了练车上,练车是轮流上车练习,那么在很长的等待时间我每天都会玩一个名叫脑力风暴,这两件事是我寒假几乎每天都在坚持的事情. 1.练车因为我家距离驾校比较远, ...

  8. 小毛驴走呀走的openeim001

    小毛驴走呀走的openeim001 今天的小毛驴走呀走的openeim001(http://blog.sina.com.cn/s/articlelist_2265427400_0_3.html),为他 ...

  9. 【C++FunCode】基于Funcode使用C++语言编写小游戏(小鲨鱼历险记)

    一.前言 大一暑假参加了山东省软件设计大赛,基于FunCode平台使用C++语言编写了大鱼吃小鱼游戏,其美名曰小鲨鱼历险记,哈哈.比赛成绩惨烈,只拿了一个省三,赛后也进行了分析总结,主要还是太不重视比 ...

最新文章

  1. 平衡控制与pid的新理解
  2. 太多人关注,太少人理解,这就是“量子计算”
  3. ubuntu16.04搞出百度的方法
  4. 5月份美网络游戏用户达8700万 同比增长22%
  5. php增加vip等级设置,xiu主题添加vip等级评论样式
  6. Jetbrains:设置ctrl+鼠标滚动控制代码字体大小
  7. 学生管理系统的源代码
  8. 增长量计算n+1原则_何俊-资料分析中的增长量计算
  9. java 播放h264_一个可以解码并实时播放H264的播放器
  10. Android半圆形进度条动画,Android:半圆形进度条
  11. 与孔子同世之闻人少正卯
  12. [C# Fundamantal] 类继承简析
  13. 股权转让项目:沈阳派尔化学有限公司55%股权转让
  14. win10 无法删除 注册表 蓝牙_win10删除蓝牙设备后无法重新添加如何解决
  15. c#断点续传下载文件
  16. 降噪蓝牙耳机哪款好?500元内半入耳降噪蓝牙耳机推荐
  17. 数据链路层的功能和以太网帧格式的总结
  18. 使用Vue三种方法实现简单计算器
  19. 基于 Vue 和 TS 的 Web 移动端项目实战心得
  20. 【毕业设计源码】Python学生兼职平台系统

热门文章

  1. java代码实现文件或文件夹的压缩和解压
  2. [Linux]time+dd测试硬盘/手机/SD卡读写速度
  3. Jordan 标准型的推论
  4. 【英语语法入门】 第06讲 反身代词
  5. C++语言程序设计习题与实验指导,C++程序设计实验指导与习题.pdf
  6. java五指棋添加音效,如何在java编写的五子棋中添加背景音乐?
  7. 分享一些安卓的技巧性方法
  8. 网站建设设计|这三个基本要求你需要重点掌握!
  9. 如何下载战争雷霆(亲测有效)
  10. 斯嘉丽约翰逊60张_斯嘉丽——一个用能力征服世界的“花瓶”