当前位置: 首页 > article >正文

递归算法及其应用

递归算法定义递归是一种函数直接或间接调用自身来解决问题的方法。需要满足两个条件递归边界问题规模缩小到一定程度时直接给出答案不再递归。递归递推式把原问题分解为规模更小的同类型子问题通过调用自身求解。核心思想是将复杂问题分解为更小的同类问题。实际问题解决斐波那契数列斐波那契数列的递归定义为f(0) 0f(1) 1f(n) f(n-1) f(n-2)#include iostream using namespace std; int fib(int n) { if (n 0) return 0; if (n 1) return 1; return fib(n-1) fib(n-2); } int main() { int n; cin n; cout fib(n); return 0; }汉诺塔问题汉诺塔问题的递归解法将n-1个盘子从A移到B将第n个盘子从A移到C将n-1个盘子从B移到C#include iostream using namespace std; void hanoi(int n, char A, char B, char C) { if (n 1) { cout A - C endl; return; } hanoi(n-1, A, C, B); hanoi(1, A, B, C); hanoi(n-1, B, A, C); } int main() { int n; cin n; hanoi(n, A, B, C); return 0; }迷宫寻路迷宫寻路使用递归回溯法从起点开始尝试四个方向能走则递归继续不能走则回溯#include iostream using namespace std; int maze[5][5] { {0,1,0,0,0}, {0,1,0,1,0}, {0,0,0,1,0}, {0,1,1,1,0}, {0,0,0,0,0} }; int vis[5][5] {0}; int dx[] {-1,1,0,0}; int dy[] {0,0,-1,1}; bool dfs(int x, int y) { if (x 4 y 4) return true; for (int d 0; d 4; d) { int nx x dx[d]; int ny y dy[d]; if (nx 0 nx 5 ny 0 ny 5 maze[nx][ny]0 !vis[nx][ny]) { vis[nx][ny] 1; if (dfs(nx, ny)) return true; vis[nx][ny] 0; } } return false; } int main() { vis[0][0] 1; if (dfs(0,0)) cout 找到路径; else cout 无路; return 0; }N皇后问题N皇后问题使用递归回溯法逐行放置皇后检查列和对角线是否冲突#include iostream #include cstring using namespace std; int n, ans 0; int col[20], dg[40], udg[40]; void dfs(int r) { if (r n) { ans; return; } for (int c 0; c n; c) { if (!col[c] !dg[rc] !udg[r-cn]) { col[c] dg[rc] udg[r-cn] 1; dfs(r1); col[c] dg[rc] udg[r-cn] 0; } } } int main() { cin n; dfs(0); cout ans; return 0; }递归与数学归纳法递归与数学归纳法有相似的结构基例对应递归边界归纳假设对应递归调用归纳步骤对应递归递推式递归是计算机实现数学归纳法的具体方式。递归通用模板递归问题的通用解法模板返回值 dfs(参数) { if (到达边界) return 结果; // 选择一种情况 标记; dfs(子问题); 取消标记; }

相关文章:

递归算法及其应用

递归算法定义递归是一种函数直接或间接调用自身来解决问题的方法。需要满足两个条件:递归边界:问题规模缩小到一定程度时直接给出答案,不再递归。递归递推式:把原问题分解为规模更小的同类型子问题,通过调用自身求解。…...

测试左移实战:如何让职业价值翻倍

在软件快速迭代与DevOps文化盛行的今天,测试工程师的角色正经历一场深刻的变革。传统模式下,测试往往被置于开发周期的末端,成为上线前的最后一道“质检关卡”,这种被动定位使得测试人员常陷入“救火队员”的困境,职业…...

Agent Skill编写基础教程(非常详细),掌握这8条法则,从入门到精通!

在 AI Agent 领域,很多开发者都陷入了一个瓶颈:明明模型底座一直在升级,为什么我的 Agent 还是经常“间歇性降智”? 其实,Agent 并不缺“大脑”,缺的是好用的“肌肉”——也就是我们常说的 Skills&#xf…...

DSAlgo排序算法深度解析:10种经典排序的Python3实现

DSAlgo排序算法深度解析:10种经典排序的Python3实现 【免费下载链接】DSAlgo 📚A repository that contains all the Data Structures and Algorithms concepts and solutions to various problems in Python3 stored in a structured manner.&#x1f4…...

眼科医生和研发工程师都该懂:SS-OCT如何成为眼底疾病诊断的“黄金标准”

SS-OCT技术:重塑眼底疾病诊断的临床实践与设备研发范式 在眼科诊疗领域,诊断工具的每一次革新都意味着疾病检出率和治疗精准度的跃升。当传统时域OCT(TD-OCT)还在为获取一张清晰的视网膜断层图像需要患者保持数秒静止时&#xff0…...

Vue3集成百度地图:从零构建个性化轨迹可视化应用

1. 为什么选择Vue3集成百度地图? 最近在做一个物流轨迹监控系统时,我发现百度地图的个性化定制能力确实强大。相比其他地图服务,百度地图对国内开发者更友好,特别是在地址解析、行政区划数据等方面表现突出。Vue3的Composition AP…...

overseer 生产环境部署最佳实践:安全、监控和故障处理

overseer 生产环境部署最佳实践:安全、监控和故障处理 【免费下载链接】overseer Monitorable, gracefully restarting, self-upgrading binaries in Go (golang) 项目地址: https://gitcode.com/gh_mirrors/ov/overseer overseer 是一款用 Go 语言开发的可监…...

若依框架与微信小程序:构建企业级双用户体系与支付集成

1. 若依框架与微信小程序的天然契合点 第一次接触若依框架是在2018年,当时我正在为一个连锁零售企业开发会员系统。客户要求既要有一个功能强大的后台管理系统,又要配套微信小程序供会员使用。在尝试了多个框架后,若依(RuoYi)以其清晰的模块化…...

计算机辅助药物设计中的分子对接与虚拟筛选

计算机辅助药物设计中的分子对接与虚拟筛选 在药物研发领域,计算机辅助药物设计(CADD)已成为加速新药发现的重要工具。其中,分子对接与虚拟筛选技术通过模拟药物分子与靶标蛋白的相互作用,显著提高了候选化合物的筛选…...

Simulink电机仿真避坑指南:手把手教你封装一个可复用的电流环PI控制器(含Mask参数绑定技巧)

Simulink电机仿真避坑指南:手把手教你封装一个可复用的电流环PI控制器(含Mask参数绑定技巧) 在电机控制系统的开发过程中,PI控制器的设计与实现是核心环节之一。很多工程师虽然掌握了PID的基本原理,但在实际项目中却常…...

CocoaRestClient:macOS上最优雅的HTTP/REST API测试工具完整指南

CocoaRestClient:macOS上最优雅的HTTP/REST API测试工具完整指南 【免费下载链接】cocoa-rest-client A free, native Apple macOS app for testing HTTP/REST endpoints 项目地址: https://gitcode.com/gh_mirrors/co/cocoa-rest-client CocoaRestClient是一…...

php学习01,一个文件搞懂php的所有语法,PHP实现贪吃蛇,记事本

php学习01,一个文件搞懂php的所有语法,PHP实现贪吃蛇,记事本 PHP是干什么用的来龙去脉适用场景发展历史详解 PHP 是一门专为 Web 开发而生的开源服务器端脚本语言,核心价值是快速、低成本地构建动态网站与后端服务。它从个人工具…...

AT32F403A SPIM功能深度解析:从内部Flash到外部W25QH128A的代码迁移技巧

AT32F403A SPIM功能深度解析:从内部Flash到外部W25QH128A的代码迁移技巧 在嵌入式开发中,存储空间往往是限制项目扩展的关键因素。当AT32F403A微控制器的内部Flash容量无法满足日益增长的代码需求时,如何高效地将代码迁移到外部Flash运行成为…...

终极指南:如何用Groovy脚本实现动态数据源路由规则

终极指南:如何用Groovy脚本实现动态数据源路由规则 【免费下载链接】dynamic-datasource dynamic datasource for springboot 多数据源 动态数据源 主从分离 读写分离 分布式事务 项目地址: https://gitcode.com/gh_mirrors/dy/dynamic-datasource 在Spring…...

OneMore插件:如何用表格全选功能让你的OneNote效率提升3倍?

OneMore插件:如何用表格全选功能让你的OneNote效率提升3倍? 【免费下载链接】OneMore A OneNote add-in with simple, yet powerful and useful features 项目地址: https://gitcode.com/gh_mirrors/on/OneMore OneMore是一款专为OneNote设计的强…...

NERD Commenter终极指南:Vim多光标批量注释技巧大全

NERD Commenter终极指南:Vim多光标批量注释技巧大全 【免费下载链接】nerdcommenter Vim plugin for intensely nerdy commenting powers 项目地址: https://gitcode.com/gh_mirrors/ne/nerdcommenter NERD Commenter是一款功能强大的Vim插件,为开…...

DownKyi:3步掌握B站视频下载,从新手到高手的完整指南

DownKyi:3步掌握B站视频下载,从新手到高手的完整指南 【免费下载链接】downkyi 哔哩下载姬downkyi,哔哩哔哩网站视频下载工具,支持批量下载,支持8K、HDR、杜比视界,提供工具箱(音视频提取、去水…...

从 Minified React error #31 到精准定位:React 日期数据格式的实战排查指南

1. 遇到Minified React error #31时该怎么办? 那天我正在调试一个活动管理系统的编辑功能,点击某条记录的"编辑"按钮后,控制台突然蹦出一个让人头疼的错误:Uncaught Invariant Violation: Minified React error #31。相…...

Squeel源码解析:深入理解DSL如何转化为Arel查询

Squeel源码解析:深入理解DSL如何转化为Arel查询 【免费下载链接】squeel Active Record, improved. Live again :) 项目地址: https://gitcode.com/gh_mirrors/sq/squeel Squeel是一个为Active Record提供增强查询能力的Ruby库,其核心功能在于通过…...

Py之yacs:从零到一,掌握yacs配置管理的核心实践与避坑指南

1. 为什么你需要yacs:告别混乱的配置文件 第一次跑深度学习实验时,我像大多数新手一样把超参数直接硬编码在代码里。结果第二天想调整学习率时,不得不在几十个.py文件中搜索magic number。更灾难的是,当同事问我"上周三那个准…...

5MB超轻量字体:文泉驿微米黑的多语言显示革命

5MB超轻量字体:文泉驿微米黑的多语言显示革命 【免费下载链接】fonts-wqy-microhei Debian package for WenQuanYi Micro Hei (mirror of https://anonscm.debian.org/git/pkg-fonts/fonts-wqy-microhei.git) 项目地址: https://gitcode.com/gh_mirrors/fo/fonts-…...

深入ByteHook核心:解密ELF解析和动态链接机制

深入ByteHook核心:解密ELF解析和动态链接机制 【免费下载链接】bhook :fire: ByteHook is an Android PLT hook library which supports armeabi-v7a, arm64-v8a, x86 and x86_64. 项目地址: https://gitcode.com/gh_mirrors/bh/bhook ByteHook是一个功能强大…...

地平线西之绝境dll缺失怎么解决?2026最新安全修复指南

当你兴冲冲地打开《地平线:西之绝境》,却只等来一个弹窗,告诉你某个dll文件找不到或无法启动,这种挫败感确实让人难受。别着急,这通常不是游戏本身或你电脑硬件的问题,而是Windows系统中某些必要的运行组件…...

移动端性能测试核心关注点

移动端性能测试主要围绕流畅度、稳定性、资源占用、网络、功耗、兼容性六大维度,覆盖用户真实使用全场景。1. 流畅度(最影响体感)FPS 帧率:滑动、列表、动画、游戏是否稳定,是否频繁掉帧卡顿率 / Jank:单位…...

wan2.1-vae部署案例:高校AI实验室用双4090部署教学演示平台,支持30并发

wan2.1-vae部署案例:高校AI实验室用双4090部署教学演示平台,支持30并发 1. 平台介绍与核心特点 muse/wan2.1-vae文生图平台是基于Qwen-Image-2512模型的AI图像生成系统,专为高校AI实验室教学需求设计。这个平台最吸引人的地方在于它能够用简…...

SITS2026现场实录:如何用轻量级LLM在200ms内生成高保真新闻摘要?

第一章:SITS2026现场实录:如何用轻量级LLM在200ms内生成高保真新闻摘要? 2026奇点智能技术大会(https://ml-summit.org) 在SITS2026主会场实时演示环节,团队基于Qwen2-1.5B-Instruct微调版本与FlashAttention-2加速栈&#xff0…...

GPU推理优化教程:提升Local AI MusicGen生成速度

GPU推理优化教程:提升Local AI MusicGen生成速度 你是不是也遇到过这样的情况:想用Local AI MusicGen创作一段音乐,输入了精心设计的描述词,结果等了半天才听到那几秒钟的旋律?那种等待的感觉,就像在等一杯…...

2026奇点大会技术白皮书节选(机密级):AI简历优化器的对抗样本防御机制与反偏见训练日志(含真实A/B测试数据集)

第一章:2026奇点智能技术大会:AI简历优化器 2026奇点智能技术大会(https://ml-summit.org) 核心能力与技术架构 AI简历优化器是本届大会发布的开源智能体(Agent)系统,基于多模态大模型微调框架LLM-Resume v3.2构建&a…...

3分钟免费搞定:FigmaCN中文界面汉化完整指南

3分钟免费搞定:FigmaCN中文界面汉化完整指南 【免费下载链接】figmaCN 中文 Figma 插件,设计师人工翻译校验 项目地址: https://gitcode.com/gh_mirrors/fi/figmaCN 还在为Figma的英文界面感到困扰吗?专业术语看不懂,菜单选…...

终极解决方案:5分钟让魔兽争霸III在现代Windows系统完美运行

终极解决方案:5分钟让魔兽争霸III在现代Windows系统完美运行 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 还在为经典魔兽争霸III在现代…...