首页 > 编程语言 >python 趣味习题_递归函数(炸弹迷宫的走法)

python 趣味习题_递归函数(炸弹迷宫的走法)

时间:2024-06-21 15:56:32浏览次数:13  
标签:递归函数 python 房间 列表 房号 炸弹 去除 习题 方法

@[toc] python 学习中,常会遇到一些百思不得其解的难题,但有时“灵光一现”找准方法,难题便会迎刃而解。
本专栏旨在记录本人解决问题的思考方法,及实现过程。有更好方法或对程序执行有疑问的伙伴,可在评论区留言,共同讨论。

题目要求

  • 题目描述:在一串连续的迷宫(房间编号为1-11的连续数)中,玩家从第一个房间出发,每次可以走 1 格也可以走 2 格,其间有两个不连续的地雷房间。问玩家要走到第M格房间有多少种方法。(炸弹房号和终点房号通过键盘输入)
  • 演示图例:以下炸弹房号为3和5,终点为7。
  • 在这里插入图片描述

运行结果

  • 共有2种走法。
  • 方法1:[2, 1, 2, 1, 1](第1次走2格,第2次走1格,第3次走1格,第4次走1格)
  • 方法2:[2, 1, 2, 2](第1次走2格,第2次走1格,第3次走2格,第4次走2格)

解决流程

  1. 通过递归函数,生成所有可能的方法列表;
  2. 在所有列表中,去除不能走到终点的列表;
  3. 在剩余列表中,去除重复路径;
  4. 去除会走到炸弹房间的路径。
    实现 流程图:

标签:递归函数,python,房间,列表,房号,炸弹,去除,习题,方法
From: https://blog.csdn.net/fjwangxi/article/details/139858288

相关文章

  • vscode python编程入门与插件推荐
    使用背景作者是一名ai测开工程师,工作环境中通常会使用到pythonshellpostgresql数据库jupyter,shh工具git版本控制等,因此向选用一个适合自己的文本编辑软件,经过长时间磨合,最终选择VScode作为我的工作软件优点内存占用率低,集成度高,开源免费插件推荐AI助手:codegeex此插件......
  • Red Hat系列的Linux发行版中如何安装python3.9
    该发行版使用yum或dnf作为包管理器:首先更新你的系统和已有的包。在终端输入以下命令:sudoyum-yupdate 安装依赖项:sudoyum-ygroupinstall"DevelopmentTools"sudoyum-yinstallopenssl-develbzip2-devellibffi-devel 下载Python3.9的源代码:wget......
  • 一个简单的python脚本,把latex项目的调用资源放在同一级,以便arxiv
    据说上传arxiv时所有资源需要在同一目录,也就是不能有文件夹(只是据说,有人说有文件夹也行,我没试过),所以写了一个简单的小脚本把latex项目的资源(主要是图片)放在和.tex一个路径下:importosimportshutiltex_file='main.tex'img_folder='imgs'encoding_type='utf-8'withopen......
  • Python梯度提升决策树的方法示例
    梯度提升决策树(GradientBoostingDecisionTree,简称GBDT)是一种基于集成学习的算法,它通过构建多个决策树模型,并将它们组合在一起来实现更好的预测性能。GBDT的核心思想是在每轮迭代中,根据当前模型的残差(真实值与预测值之差)来训练一个新的决策树,然后将这个新树添加到模型中,以不断减......
  • 用Nuitka打包 Python,效果竟如此惊人!
    目录为什么选择Nuitka?Nuitka的工作原理Nuitka的工作流程大致如下:安装Nuitka实战案例示例代码打包程序运行可执行文件进阶技巧优化选项多文件项目打包第三方库使用Python开发一个程序后,将Python脚本打包成独立可执行文件是一项常见需求。Nuitka是一个Python......
  • 用Python执行JavaScript代码,这些方法你不可不知!
    目录1、PyExecJS:轻量级桥梁......
  • Python优雅遍历字典删除元素的方法
    在Python中,直接遍历字典并在遍历过程中删除元素可能会导致运行时错误,因为字典在迭代时并不支持修改其大小。但是,我们可以通过一些方法间接地达到这个目的。1.方法一:字典推导式创建新字典(推荐)常见的方法是创建一个新的字典,其中不包含我们想要删除的元素。这可以通过字典推导式(dic......
  • 基于Python爬虫的城市天气数据可视化分析
    基于Python爬虫的城市天气数据可视化分析一、项目简介二、项目背景三、Python语言简介四、网络爬虫简介五、数据可视化简介六、天气数据爬取与存储6.1获取目标网页6.2发送请求6.3提取数据6.4保存数据七、天气数据可视化7.1天气现象轮播图7.2历......
  • 【python】 多线程
    什么是多线程?在操作系统上,所有的应用程序都是通过进程来运行的。当一个应用程序启动时,操作系统会为该应用程序创建一个或多个进程,并为这些进程分配必要的资源,如内存空间、文件句柄等,以协助应用程序的运行。在进程内部,可以同时存在多个线程。这些线程共享同一进程的地址空间和其......
  • 计算机毕业设计项目推荐,33709基于协同过滤的旅游推荐系统的设计与实现(开题答辩+程序定
    摘 要本论文主要论述了如何使用python语言、Django框架开发一个旅游推荐系统,本系统将严格按照软件开发流程,进行各个阶段的工作,面向对象编程思想进行项目开发。在引言中,作者将论述该系统的当前背景以及系统开发的目的,后续章节将严格按照软件开发流程,对系统进行各个阶段分析......