面试题:猴子最多搬多少个香蕉?

一个猴子,身带100个香蕉,他距离家50米. 这个猴子要带香蕉回去.但是他一次最多只能背50个香蕉. 而且,每走一米他就要吃掉一个香蕉(往回走也要吃香蕉). 问:这个猴子最后

 

此问题可以化简为:猴子带50个香蕉走到x米处原路返回取走剩下50香蕉走到终点,问x取何值终点香蕉最多。【化简理由:由于折返路上会损耗香蕉,100=50*2,故只需并只必折返一次。】

下面开始计算。带50个走x米剩余(50-x)香蕉,放下(50-2x)香蕉在原地,携带x香蕉返回原点,x香蕉正好被路上消耗。带50香蕉走x米至前面放香蕉的地方,此时共有(100-3x)香蕉。接下来能够携带的香蕉数为50与(100-3x)中的小者,两种情况走(50-x)米到达终点香蕉分别还剩x个以及(50-2x)个。

当50<(100-3x)时(x最大值为16)剩余x香蕉,应取x最大值即剩余16香蕉

当50>(100-3x)时(x最小值为17)剩余(50-2x)香蕉,应取x最小值即剩余50-34=16香蕉

可见x=16或17时均可实现最优化即剩余16香蕉。数学解题角度,x取16或17均可。实际角度,就关爱动物以及资源节约方面考虑取x=16最优。



作者:JHyoooo W
链接:https://www.zhihu.com/question/25019587/answer/29817473
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

 

假设我把题目变成一共200根萝卜,兔子要走100米才能到家,每走1米同样消耗1根萝卜。按照你的方法计算的话,兔子最多带回家32根。 但其实可以带回家33根的(将100根萝卜先带到33米处放下34根,回到最初的地方再拿剩下的100根带到33米处,此时33米处一共有101根,但兔子只拿100根走完剩下的67米,正好带回家33根)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值