猴子吃桃问题(python版)

文章预览:

  • 题目
  • python解法一:
    • 运行结果
  • python解法二:
    • 运行结果
  • python解法三:
    • 运行结果

题目

猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。
第二天早上又将剩下的桃子吃掉一半,又多吃了一个。
以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求原来它一共摘了多少只桃子。

这是一个比较简单的python习题。

python解法一:

我们从后往前想,最后一次不就剩1个了吗,那么前一天剩多少个 和容易想到2*1+2,那么我们倒序想 就是 a n + 1 = 2 ∗ a n + 2 a_{n+1}=2*a_n+2 an+1=2an+2

def count(day):a=1for i in range(day-1):a=a*2+2return a
print("第10天共摘了{}桃子".format(count(10)))

运行结果

第10天共摘了1534桃子

python解法二:

我们可以使用递归的办法,每次减小天数,天数为1的时候是1
代码如下:

def  monkey_count(day):if day==1:return 1else:return  2*monkey_count(day-1)+2print("第{}天剩一个那总共有{}".format(10,monkey_count(10)))

运行结果

第10天剩一个那总共有1534

python解法三:

让我们算最终解法:复杂度最低的算法,我们干嘛不寻找规律完全解出这个通项岂不美哉。
在这里插入图片描述
由上面我们推导出了公式 a n = 3 / 2 ∗ 2 n − 2 a_n=3/2*2^n-2 an=3/22n2
那编程就容易多了
代码如下:

a=int(input())
count=3*2**(a-1)-2
print("第{}天剩一个那总共有{}".format(a,count))

运行结果

输入10
第10天剩一个那总共有1534

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/508860.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

超全面!Linux学习资料大合集,21套从入门到进阶,看这篇就够了

本文将为那些渴望学习Linux,但又缺乏相应资料和方向的朋友,提供21套Linux优质资料,包含入门到进阶,希望能对大家有所帮助。 此合集内容及其丰富,涉及方面颇多,不仅适合Linux入门学习的朋友,运维…

水电站数字孪生:水力发电在可视化领域的应用

自水轮机的早期发明被用于农业灌溉,到 18 世纪末期的工业革命促使水轮机技术的改良,再到 19 世纪末水利发电的崛起,直至今日,智慧水电站数字孪生技术正处于蓬勃发展之中。通过整合物联网、大数据、云计算等现代信息技术&#xff0…

【Zookeeper】ZooKeeper的一些重要功能和作用

🍎个人博客:个人主页 🏆个人专栏:日常聊聊 ⛳️ 功不唐捐,玉汝于成 目录 前言 正文 结语 我的其他博客 前言 随着分布式系统的普及和应用场景的不断增加,构建可靠、高效的分布式系统变得愈发重要。然…

开短路测试

一、介绍 连接性测试,可以叫开短路测试,也可叫接触性测试,英文为Continuity Test或Open & Short Test,主要用来检验测试过程中电学连接是否良好,包括测试设备本身、测试设备与Loadboard、DUT本身等等,是…

SpringBoot接口防抖(防重复提交)的一些实现方案

前言 啥是防抖 思路解析 分布式部署下如何做接口防抖? 具体实现 请求锁 唯一key生成 重复提交判断 前言 作为一名老码农,在开发后端Java业务系统,包括各种管理后台和小程序等。在这些项目中,我设计过单/多租户体系系统&a…

一文梳理LIN协议与应用

目录 一、LIN是什么?有什么用?二、LIN概要描述2.1 特点2.1.1 低成本2.1.2 易扩展2.1.3 速率一般,不高 2.2 网络形态2.3 架构分层 三、应用层 4 大功能3.1 配置3.2 识别(查询功能)3.3 信号处理3.4 诊断 四、协议层介绍4…

深入理解Docker自定义网络:构建高效的容器网络环境

文章目录 一、docker自定义网络介绍1.1 docker自定义网络介绍1.2 使用技术的优势1.3 基本使用流程 二、实战操作2.1 模式理论介绍bridge模式(默认模式)host模式 2.2 模式特点查看桥接模式的特点查看仅主机模式的特点 2.3 实战操作bridge模式host模式自定义网络 一、docker自定义…

傻瓜式——Kibana 作图指北

背景:比较重要的功能即将上线,需要观测一些项目运行指标,项目周边用了kibana ,想用Kibana 简单做一些图。 难者不会,会者不难—— 在Kibana 中找到这个标签页——可视化 2. 新增可视化图 3. 可以选取自己需要的图样式&#xff…

【EAI 027】Learning Interactive Real-World Simulators

Paper Card 论文标题:Learning Interactive Real-World Simulators 论文作者:Mengjiao Yang, Yilun Du, Kamyar Ghasemipour, Jonathan Tompson, Leslie Kaelbling, Dale Schuurmans, Pieter Abbeel 作者单位:UC Berkeley, Google DeepMind, …

智慧草莓基地:Java与SpringBoot的技术革新

✍✍计算机毕业编程指导师 ⭐⭐个人介绍:自己非常喜欢研究技术问题!专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目:有源码或者技术上的问题欢迎在评论区一起讨论交流! ⚡⚡ Java、…

js【详解】自动类型转换

运算符 Symbol 数字 会报错 Cannot convert a Symbol value to a number Symbol 字符串 会报错 Cannot convert a Symbol value to a string 存在对象,数组,函数时 对象,数组,函数会先执行其 toString() 方法,…

软考信息系统项目管理师零基础怎么学习?

软考考信息系统项目管理师,零基础怎么入手高项? 要我说对于没有基础的人群来说零基础考信息系统项目管理师还是有一定的难度的,难就难在需要时间去了解基础,而相对于系统分析师、系统构架设计师、网络规划设计师、系统规划与管理…