python实现猴子爬山算法

猴子爬山一只顽猴在一座有N级台阶的小山上爬山跳跃。上山时需从山脚至山顶往上跳N级台阶,一步可跳1级,或跳3级,求上山有多少种不同的跳法? (N<50)

问题分析:

每一次都可以选择1,2,3有3种跳法

方法1 直接使用递归

jumpWay = [1, 3]footstep = int(input())jumping = 0#first writedef jump(nowstep, footstep, jumpWay):if nowstep == footstep:global jumpingjumping += 1returnelif nowstep > footstep:returnelse:for i in range(len(jumpWay)):jump(nowstep + jumpWay[i], footstep, jumpWay)jump(0, footstep, jumpWay)

但是这种方式会提示 递归层数过多

想办法对算法进行合理优化,排列组合

方法2 循环全排列

size = int(input())
n3 = size//3
res = 0# 求阶乘
def jiecheng(n):num = 1if n==1:return 1else:for i in range(1,n+1):num*=ireturn num# 求排列        
def c43(n4,n3):# return jiecheng# 3!/(4-3)!*3!# j3 = jiecheng(3)return jiecheng(n4)//(jiecheng(n4-n3)*jiecheng(n3))# a32不用了
# def a32(n3,n2):
#    return jiecheng(n2)//jiecheng(n3)-jiecheng(n2)# 循环
for i in range(size+1):# i 为有几个 1步的情况for j in range(n3+1):# j为有 几个 3步的情况if (i+j*3) == size:# temp 为总数temp = j+ires+=c43(temp,j)
print(res)

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

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

相关文章

指针版 单链表复习

#include <bits/stdc.h> #define P pair<int,int> using namespace std;typedef long long LL;typedef struct LNode{int data;struct LNode *nxt; }LNode,*LinkList;bool Linklist_init(LinkList &root){root new LNode; ///分配头结点&#xff0c;指针域为空…

手写springboot_Spring Boot 入门教程 | 图文讲解

目录一、Spring Boot 是什么二、为什么要使用 Spring Boot三、快速入门3.1 创建 Spring Boot 项目3.2 项目结构3.3 引入 Web 依赖3.4 编写第一个接口3.5 启动程序&#xff0c;验证效果四、总结五、GitHub 示例代码一、Spring Boot 是什么以下截图自 Spring Boot 官方文档&#…

lunix 安装python3

Linux下默认系统自带python2.6的版本&#xff0c;这个版本被系统很多程序所依赖&#xff0c;所以不建议删除&#xff0c;如果使用最新的Python3那么我们知道编译安装源码包和系统默认包之间是没有任何影响的&#xff0c;所以可以安装python3和python2共存 首先去python官网下载…

手机音视频应用开发(专注于Symbian、iPhone、Android等跨平台音视频应用开发方案)

一款好的手机应用&#xff0c; 能让用户在第一分钟就爱上他&#xff0c; 一款烂的手机应用&#xff0c; 能让用户在第一分钟就要卸载它。 好的应用必须的稳定、快速。市场日益激励&#xff0c;一个项目的周期是一个漫长的过程&#xff0c;投入的时间、精力、费用。一笔庞大的预…

Colemak布局的实现 Window+Linux+Android

Colemak布局的实现 WindowLinuxAndroid title: ‘Colemak布局的实现’ subtitle: ‘一个极客的键盘布局’ tags: entertainment solution 前言 大部分同学使用的键盘布局都是QWERTY布局 而科学研究表明,可能这个设计不是最高效率的布局,甚至的有意为了降低打字的效率而研究的…

机器学习之朴素贝叶斯法

转载请注明出处&#xff1a;http://www.cnblogs.com/Peyton-Li/ 朴素贝叶斯法是机器学习模型中一个比较简单的模型&#xff0c;实现简单&#xff0c;比较常用。 是定义在输入空间上的随机向量&#xff0c;是定义在输出空间上的随机变量。是和的联合概率分布。训练数据集由独立同…

如何让梯形变成平行四边形_开放的课堂 创新的天地——平行四边形的面积教学片段与反思...

一、 课题的确定学生在三年级学过长方形、正方形的面积计算&#xff0c;经历过从数方格的办法得出面积计算公式的过程。因此&#xff0c;学生对于面积计算公式的推导有一定的经验和知识基础。基于上述考虑&#xff0c;我想完全放手让学生去研究如何计算平行四边形的面积。这对学…

bzoj1670【Usaco2006 Oct】Building the Moat 护城河的挖掘

1670: [Usaco2006 Oct]Building the Moat护城河的挖掘 Time Limit: 3 Sec Memory Limit: 64 MBSubmit: 387 Solved: 288[Submit][Status][Discuss]Description 为了防止口渴的食蚁兽进入他的农场&#xff0c;Farmer John决定在他的农场周围挖一条护城河。农场里一共同拥有N(8…

音视频编解码的一些源代码

音视频编解码的一些源代码 &#xff08;转&#xff09;资料名称&#xff1a;音视频编解码的一些源代码 资料成文时间&#xff1a;不详 语言&#xff1a;英文 页数&#xff1a;很多 何人所著&#xff08;来源&#xff09;&#xff1a; 文件格式&#xff1a;原代码 开发工具:vc 说…

Vue之组件之间的数据传递

Vue的组件作用域都是孤立的&#xff0c;不允许在子组件的模板内直接引用父组件的数据&#xff0c;必须使用特定的方法才能实现组件之间的数据传递。 下列为在vue-cli创建项目中的操作 一父组件向子组件传递数据 在Vue中&#xff0c;用props向子组件传递数据。 子组件部分&#…

偶然发现一个大佬写的 React 脚手架,叫Moderate, 用起来很方便

发现一个大佬写的 React 脚手架&#xff0c;叫Moderate, 用起来很方便 Moderate&#xff0c;意思为适中的&#xff0c;适度的&#xff0c;用这个作为代号&#xff0c;主要取决于他的本名“中用”&#xff0c;其一以贯之的想法就是中庸&#xff0c;秉承着以人为本的态度&#xf…

案例 自动办公_1300张办公系列前台参考图,请您查收!

设计情报局室内设计师的灵感聚集地关注一个有格调的空间必定有一处高颜值的前台漂亮的前台很重要...是空间给人的第一印象一个独一无二的前台设计还可以提升整个空间的气质与逼格连个漂亮的前台都没有作为颜控界扛把子的设计师们还怎么混&#xff1f;SO今天小编给大家带来一份《…

iframe里面的元素触发父窗口元素事件的jquery代码 转

例如父窗口定义了一个事件。 top: $(dom1).bind(topEvent, function(){}); 那么iframe里面的元素怎样触发父窗口dom1的事件呢&#xff1f;这样吗&#xff1f; $(dom1, parent.document).trigger(topEvent); 看似正确&#xff0c;实则误导人。 因为父窗口的jquery对象与iframe里…

mplayer 所支持的音视频编解码

这里我把mplayer 所支持的音视频编解码都罗列出来&#xff0c;方便大家查阅&#xff1b;-----------------------------------------------------------------------------------------------Video codecs:Working video codecscodec namefourcccodecfileoutcommentsFFmpeg Zip…

使用ifconfig取出网卡eth0的ip地址

方法1&#xff1a;sed命令12[rootoldboyedu ~]# ifconfig eth0 |sed -n 2p |seds#^.*addr:##g|sed s# B.*$##g10.0.0.50方法2&#xff1a;cut12[rootoldboyedu ~]# ifconfig eth0|grep inetaddr|cut -d ":" -f2|cut -d " " -f110.0.0.50方法3&#xff1a;…

目标检测_目标检测 | Anchor free的目标检测进阶版本

今天说的是《Soft Anchor-Point Object Detection》&#xff0c;其也是最近关于anchor free的目标检测的论文&#xff0c;作者来自于CMU&#xff0c;一作同样也是FSAF(2019 CVPR)的作者。该论文的出发点还是在样本选择和FPN特征选择层面。背景Anchor free是目标检测领域的一个研…

Colly实现豆瓣电影Top250爬取

使用 Colly 实现 豆瓣电影Top250爬取 package mainimport ("encoding/csv""github.com/PuerkitoBio/goquery""github.com/gocolly/colly""log""os""strings""time" )type Movie struct {idx string…

homework1

一.什么是RUP?二.什么是XP?三.什么是敏捷过程&#xff1f; 一。什么是RUP?RUP是一种完整而且完美的软件过程 1。最佳实践 &#xff08;1&#xff09;迭代式开发 &#xff08;2&#xff09;管理需求 &#xff08;3&#xff09;使用基于构件软件的体系结构 &#xff08;4&…

编程:休息片刻的好处

原文作者 Axel Rauschmayer 是一位居住在德国慕尼黑的自由软件工程师。他在这篇博文列举了在编程期间休息片刻的一些好处。 你会更精明而不是更卖力地工作。我曾经为了一个功能的实现而卖力工作过。每天12小时&#xff0c;整整工作了两个星期。我付出了很多努力。那两个星期之…

五个温度带的分界线_女神建筑师在拿破仑故乡打造的海景别墅,超美!超有温度!【环球设计2225期】...

生活的温度 法国建筑师阿米莉亚塔维拉(Amelia Tavella)一直对设计充满热情&#xff0c;她出生在阿雅克肖市&#xff0c;在巴黎的建筑学院学习建筑专业&#xff0c;如今她居住普罗旺斯地区的艾克斯。她说&#xff1a;“设计让我涉足很多有趣的领域并能充分发挥我的想象力。这是一…