猴子吃香蕉过河问题分析与扩展

原创 2018年04月17日 10:15:43

第一次接触这个题目是大学找工作时候的一次笔试,题干意思是说有一座桥长50m,桥的一端放着一堆香蕉总共100根,还有一只猴子,这只猴子想要过桥,但是每走1m就要吃一根香蕉(每移动1m要吃一根香蕉,否则饿死,就是这么矫情),并且猴子身上最多可以放50根香蕉,再多就被压死了。问:猴子最多可以把多少根香蕉搬到桥的另一端?

乍一看觉得不太科学,觉得猴子搬不过去,搬过去数量为0,仔细考虑,猴子是可以往返搬运的。

可以分为2个阶段:

1:第一阶段是往返搬香蕉,尽可能多的把香蕉往前挪动,假设猴子先搬50根香蕉走x米,这时候身上剩下50-x根,考虑回去路上吃的,还需要x根,所以可以在x米处丢掉香蕉50-2x根,然后返回,刚好走回去,再带50根,往前走,走到x米处又消耗x根,这时候需要一个条件,走到x米处要保证此时x米处所有香蕉数量不超过((50-x) + (50 - 2x) <= 50), 即(x >= 50 / 3)这样才能进入第二阶段,也就是带着所有的不超过50根的香蕉一口气走到桥尾。

2:第二阶段是把在x米处的香蕉数量一口气运送到桥尾,期间消耗香蕉数为50-x个,到桥尾的时候剩余数量可得为(50-x) + (50 - 2x)  - (50 - x)个,即 50 - 2x个,要让它最大,就得想最小,而x满足 x>= 50 / 3,x取17,最终结果50 - 2 * 17 = 16个。

不过这样有点无聊,像是纯数学不等式问题,可以加点难度变为编程问题,否则哪来的成就感,如果桥长为s米,初始香蕉总量为n根,猴子身上最多能放w根香蕉,每走1步就还是吃1根香蕉吧。

后续继续分析以及补上代码

大众点评的吃包子小人等待效果的实现

实现大众点评吃包子小人等待效果
  • 2015年03月23日 10:32

猴子吃香蕉 智力题

大象吃香蕉(猴子搬香蕉)的问题 问题: 说有一只大象,每走一米要吃一只香蕉,否则就走动了。然后大象要从A走到B,之间的距离是1000米。出发点有2000只香蕉,大象最多能带着1000只香蕉...
  • Athenaer
  • Athenaer
  • 2013-03-01 11:21:56
  • 2966

FCC算法:十、猴子吃香蕉, 分割数组--Chunky Monkey

要求: 猴子吃香蕉, 分割数组 (猴子吃香蕉可是掰成好几段来吃哦)把一个数组arr按照指定的数组大小size分割成若干个数组块。例如:chunk([1,2,3,4],2)=[[1,2],[3,4]...
  • github_38414220
  • github_38414220
  • 2017-11-11 11:34:16
  • 213

JavaScript实现-猴子吃香蕉,分割数组-Chunky Monkey

猴子吃香蕉, 分割数组 (猴子吃香蕉可是掰成好几段来吃哦) 把一个数组arr按照指定的数组大小size分割成若干个数组块。 例如:chunk([1,2,3,4],2)=[[1,2],[3,4]]...
  • KatherineLYP
  • KatherineLYP
  • 2017-08-23 11:51:21
  • 168

有只小猴子,路边有80根香蕉,小猴子走40步能到家,每走一步要吃1根香蕉,否则就停止不前,小猴子每次能搬40根 香蕉,请编程求出小猴子最多能搬多少根香蕉回到家。

有只小猴子,路边有80根香蕉,小猴子走40步能到家,每走一步要吃1根香蕉,否则就停止不前,小猴子每次能搬40根香蕉,请编程求出小猴子最多能搬多少根香蕉回到家。 答案为12根香蕉,编程代码如下,编程技术...
  • wsbl52006
  • wsbl52006
  • 2016-03-13 21:28:53
  • 1072

算法1 五只猴子吃桃子

算法1 五只猴子吃桃子 题目:海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子凭据分为五份,多了一个,这只猴子把多的一个扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份,又多了一个,它...
  • qq_33618717
  • qq_33618717
  • 2017-08-27 21:34:24
  • 277

猴子搬香蕉问题。

一个小猴子边上有100根香蕉,它要走过50米才能到家,每次它最多搬50根香蕉,(多了就被压死了),它每走1米就要吃掉一根,请问它最多能把多少根香蕉搬到家里。(提示:他可以把香蕉放下往返的走,但是必须保...
  • xiaomin98
  • xiaomin98
  • 2008-01-10 16:48:00
  • 10384

牛客练习赛6 A 猴子吃香蕉(等差数列)

题目链接:https://www.nowcoder.com/acm/contest/26/A 题目描述 有n只猴子,第i只猴子每过xi小时会连续吃香蕉yi小时。猴子从第二次开始...
  • qq_34287501
  • qq_34287501
  • 2017-11-18 14:21:09
  • 194

人工智能实验 猴子摘香蕉

题目意思:猴子定义了4个状态  空手移动,推箱子,爬箱子,摘香蕉 用 (w,x,y,z)描述w定义了猴子位置x为1表示猴子在箱子上,0表示不在箱子上y表示箱子位置z为1表示猴子摘到香蕉(结束),为0表...
  • Tianweidadada
  • Tianweidadada
  • 2018-04-02 22:55:38
  • 38

人工智能 猴子摘香蕉

  • 2013年11月20日 22:12
  • 10KB
  • 下载
收藏助手
不良信息举报
您举报文章:猴子吃香蕉过河问题分析与扩展
举报原因:
原因补充:

(最多只允许输入30个字)