题目描述

一个小猴子边上有100根香蕉,它要走过50米才能到家,每次它最多搬50根香蕉,(多了就被压死了),它每走1米就要吃掉一根,请问它最多能把多少根香蕉搬到家里。(提示:他可以把香蕉放下往返的走,但是必须保证它每走一米都能有香蕉吃。也可以走到n米时,放下一些香蕉,拿着n根香蕉走回去重新搬50根。

题目解答

这种试题通常有一个迷惑点,让人看不懂题目的意图。

此题迷惑点在于:

  • 走一米吃一根香蕉,一共走50米,那不是把50根香蕉吃完了吗?
  • 如果要回去搬另外50根香蕉,则往回走的时候也要吃香蕉,这样每走一米需要吃掉三根香蕉,走50米岂不是需要150根香蕉?

其实不然,本题关键点在于:猴子搬香蕉的过程其实分为两个阶段

  • 第一阶段:来回搬,当香蕉数目大于50根时,猴子每搬一米需要吃掉三根香蕉。
  • 第二阶段:香蕉数 <= 50,直接搬回去。每走一米吃掉1根。

第一阶段:假如把100根香蕉分为两箱。一箱50根。

  • 第一步,把A箱搬一米,吃一根。
  • 第二步,往回走一米,吃一根。
  • 第三步,把B箱搬一米,吃一根。

这样,把所有香蕉搬走一米需要吃掉三根香蕉。这样走到第几米的时候,香蕉数刚好小于50呢?

100-(n*3)<50 && 100-(n-1*3)>50 // n = 17

第二阶段:

走到16米的时候,吃掉48根香蕉,剩52根香蕉。这步很有意思,它可以直接搬50往前走,也可以再来回搬一次,但结果都是一样的。到17米的时候,猴子还有49根香蕉。这时猴子就轻松啦。直接背着走就行。

走一米吃一根。

把剩下的50-17=33米走完。还剩49-33=16根香蕉。

[益智]:猴子搬香蕉相关推荐

  1. 猴子搬香蕉(算法入门题目005)

    题目 A 地有一堆香蕉,共 w 只. 一只猴子要把香蕉从 A 地运输到 B 地. 两地相距 s 里. 猴子每次最多只能背 c 只香蕉. 无论背多少香蕉(甚至不背),猴子每走 1 里路,会吃掉 1 只香 ...

  2. 【每日一道智力题】之猴子搬香蕉

    题目 一个小猴子边上有100根香蕉,它要走过50米才能到家,每次它最多搬50根香蕉,(多了就被压坏了),它每走1米就要吃掉一根,请问它最多能把多少根香蕉搬到家里.(提示:他可以把香蕉放下往返的走,但是 ...

  3. 猴子搬香蕉Java实现,儿童编程游戏CodeMonkey,让你的小猴子不停地吃香蕉

    关于儿童编程游戏,极客爸爸在之前的文章也有所介绍.而今天向大家分享的,是一款名叫CodeMonkey的游戏.相信关注这方面的朋友对这个产品并不陌生,在上月,CodeMonkey完成了150万美元的种子 ...

  4. 猴子搬香蕉Java实现_趣味算法:猴子搬香蕉问题

    在博客园一篇文章末尾看到一个有趣的数学问题,据说是小学4年级的题目,摘引如下: 一只小猴摘了300个香蕉,需要搬回家,每次最多搬100个.小猴离家100米,它每走1米,都需要吃掉1个香蕉来补充能量,请 ...

  5. 兔子搬萝卜  猴子搬香蕉  算法实现

    一只小兔子有100根胡萝卜, 它要走50米才能到家, 每次它最多搬50根胡萝卜, 而每走1米就要吃掉1根胡萝卜, 请问它最多能把多少根胡萝卜搬到家里? 如果有125根胡萝卜?200根胡萝卜?如果负重1 ...

  6. 【C++】人工智能实验一 猴子摘香蕉/传教士与野人(含完整代码与状态迁移图)

    文章目录 一.猴子摘香蕉问题 1.问题描述 2.解题思路 3.实验结果及分析 实验结果一 实验结果二 实验结果三 4.实验结果 5.实验代码 二.传教士(牧师)与野人问题 1.问题描述 2.实验步骤 ...

  7. 用软件构造的思维理解猴子摘香蕉问题

    背景简介/问题描述 一个房间里,天花板上挂有一串香蕉,有一只猴子可在房间里任意活动(到处走动,推移箱子,攀登箱子等).设房间里还有一只可被猴子移动的箱子,且猴子登上箱子时才能摘到香蕉,问猴子在某一状态 ...

  8. JAVA语言写的人工智能小实验——猴子摘香蕉

    背景简介/问题描述 一个房间里,天花板上挂有一串香蕉,有一只猴子可在房间里任意活动(到处走动,推移箱子,攀登箱子等).设房间里还有一只可被猴子移动的箱子,且猴子登上箱子时才能摘到香蕉,问猴子在某一状态 ...

  9. 猴子摘香蕉问题-人工智能模拟

    题目: 利用一阶谓词逻辑求解猴子摘香蕉问题:房内有一个猴子,一个箱子,天花板上挂了一串香蕉,其位置如图1所示,猴子为了拿到香蕉,它必须把箱子搬到香蕉下面,然后再爬到箱子上.请定义必要的谓词,列出问题的 ...

最新文章

  1. pangilin 安装编译
  2. Transformer的前世今生
  3. 开发工具之Android Studio快捷键
  4. 微信和支付宝支付模式详解及实现(.Net标准库)- OSS开源系列
  5. 工科学生懂艺术,魔鬼神仙挡不住
  6. 双线性内插怎么缩小_汗蒸桶怎么选择才是最好的
  7. 如何创建一个新浪微博应用以及获得Access token
  8. Angular应用里setTimeout被如何被monkey patched的
  9. 使用Jenkins部署.Net Core遇到的几个坑
  10. php年月转换为年月日,php 将秒数转换为年、月、日、小时等时间格式
  11. Ubuntu下配置Window CIFS共享
  12. 物联网的未来不止于 5G!
  13. Appium移动端自动化测试之元素定位(三)
  14. Linux下C语言的调试器 Gdb
  15. 中值滤波_图像处理之低通滤波
  16. 深度 linux ansys,deepin安装ansys
  17. 520 miix 小兵 黑苹果_【黑果小兵】macOS Big Sur 11.0.1 20B50 正式版 with Clover 5126 黑苹果系统镜像下载...
  18. 大学高数常微分方程思维导图_思维导图_2016考研数学:高数中六种常见题型归纳_沪江英语...
  19. VirtualBox扩容教程
  20. Linux服务器中登录oracle数据库

热门文章

  1. 对抗网络之PG-GAN,无条件下生成更真实的人脸图像
  2. 201809 CCF
  3. [电路]3-基尔霍夫定律
  4. 弘辽科技:拼多多客单价怎么算?如何提高?
  5. 我自己制作的导航页网站,源码免费分享~
  6. 如何用gitbook写书
  7. 2022年学C++开发好比49年入国军,没什么公司在用C++了?
  8. 世界杯winner只属于你——MESSI
  9. 5.3.1 Unique Binary Sear Trees
  10. 微信公众号开发—入门系列(一)