
汉诺塔问题的递归与非递归 C++ 解法
汉诺塔是经典的递归入门问题。递归解法把 n 个圆盘拆成 n-1 子问题,直接写代码很容易。非递归解法要么手动用栈模拟调用,要么利用交替移动最小的圆盘和合法移动的规律,能避免递归过深栈溢出。C++ 代码分别展示了这两种方式,其中非递归的栈模拟思想可推广到其他递归场景。
博客作者
摆渡灵魂
377
已发布文章
13K
博客获赞
742K
博客浏览
第 1 页

汉诺塔是经典的递归入门问题。递归解法把 n 个圆盘拆成 n-1 子问题,直接写代码很容易。非递归解法要么手动用栈模拟调用,要么利用交替移动最小的圆盘和合法移动的规律,能避免递归过深栈溢出。C++ 代码分别展示了这两种方式,其中非递归的栈模拟思想可推广到其他递归场景。
用 ESP32-S3、INMP441、MAX98357 和百度文心一言搭一个可对话的语音助手,重点不只是联网调用 API,还包括 Arduino IDE 与 esp32 2.0.17 开发板包安装、必要库导入、音频模块与 SD 卡接线、Blink 和音频环回测试。文中还给出了唤醒词训练所需的离线包、SD 卡容量与供电选择上的实际取舍,整体思路是先把本地硬件链…

Jetpack Compose 是 Android 官方的声明式 UI 工具包,适合用更少的 Kotlin 代码构建界面,并且能和现有 View 系统共存,便于渐进式迁移。文章梳理了 Compose 的核心概念,包括声明式 UI、Composable 函数、重组机制、基础模块和 Slot API,也给出依赖配置、布局、主题、倒计时器、列表、导航等实战写法。整…

GoView 是一套基于 Vue3 的低代码可视化平台,接入 .NET 时可以选择前后端分离或把构建后的静态资源嵌入到项目中。示例给出了 GoView 的构建方式、.NET WebApp 承载静态文件的配置、Program.cs 路由设置、API 控制器返回图表数据,以及将 axios 基地址改为本地接口的方法。文中还补充了 JWT 认证、主题切换、缓存优化…

金融 NLP 在新闻、公告、研报和社交媒体等文本中提取可用信号,常见落点包括情绪分析、文本分类、风险识别和公告解读。文章给出了一套从清洗、分词、实体识别,到 TF-IDF+随机森林、TextBlob、BERT/FinBERT 和 GPT-3 的实现思路,并附带了一个基于 Tkinter 的金融新闻情感分析小项目。实际落地时,真正的难点通常是合规、实时性、领域…
Ubuntu 默认软件源常连到海外,国内环境下 apt update 和安装软件容易变慢。换成国内镜像源后,延迟和稳定性通常会明显改善。文章解释了 APT 仓库、sources.list 和 Ubuntu 版本代号的关系,提醒 jammy、focal、bionic 这类代号必须对应正确,否则会报 404。并对阿里云、清华 TUNA、中科大三家镜像做了实用对比…
圣光艺苑基于 Stable Diffusion SDXL 做了封装,把提示词、负面词和 Seed 改成更直观的'绘意 / 避讳 / 造化种子',并在生成后自动套上鎏金画框。文章说明了启动、输入、生成和批量模式的用法,也给出提示词写法与实测对比。它的价值不在参数堆叠,而是在于把常见流程和展示效果提前处理好,适合想快速产出古典风格 AI 绘画、又不想折腾细节的人…

在 IntelliJ IDEA 中处理 Gitee 远程仓库,常见做法只有两种:直接修改 origin 的 URL,适合把项目彻底切到新仓库;或者新增一个远程别名,保留原仓库并同时向多个仓库推送。修改后可用 git remote -v 或 IDEA 的 Manage Remotes 检查结果。若新仓库非空,首次推送可能因历史不一致失败,这时先执行 git p…

给 Clawdbot 接入飞书机器人时,经历了安装社区插件卡顿、配置失败导致无法启动、手动清理配置文件后恢复等坑,最终完成权限设置和长链接回调,成功实现飞书消息互通。

Linux 环境下部署 Tomcat 并配合内网穿透工具实现公网访问。通过安装 OpenJDK 与 Tomcat 10,修改默认首页后,利用 cpolar 将本地 8080 端口映射至公网,支持异地设备随时访问。配置固定二级子域名后可获得永久不变的访问地址,满足开发调试与演示需求。

LeRobot 是 Hugging Face 主导的开源机器人学习框架,支持模仿学习与强化学习。内容涵盖框架架构、SO101 硬件集成、环境配置、数据采集、模型训练及推理部署。同时包含 LeIsaac 仿真环境搭建与遥操作示例,提供从理论到实战的完整技术路径。
Zotero 论文阅读颜色标记体系利用八种颜色区分核心价值、技术细节与延伸背景,配合筛选、精读、复用三阶段工作流。黄色标记核心创新,绿色标识关键结果,红色指出缺陷局限,蓝色记录实现细节,紫色定义公式,橙色连接研究灵感,灰色补充背景,粉色标注存疑。该方案帮助研究者快速重构论文骨架,定位性能瓶颈与设计缺陷,高效支撑代码复现、灵感挖掘及论文写作。
探讨了 Web 可访问性的核心原则与落地实践。基于 WCAG 2.1 标准,文章详细解析了可感知、可操作、可理解及健壮性四大维度,并结合代码示例说明了语义化 HTML、替代文本、键盘导航、颜色对比度、表单 ARIA 属性及跳过链接的具体实现方法。通过一个完整的登录表单案例,展示了如何在实际开发中处理焦点管理与错误提示,最后强调了自动化工具与手动测试相结合的重…

GitHub Awesome Copilot 是由社区驱动的开源项目,旨在通过模块化组件增强 GitHub Copilot 的 AI 编程能力。项目采用分层架构,包含资源层与集成层,利用 MCP 服务器标准化连接,支持在 VS Code 及各类终端中动态加载自定义指令与提示词,帮助开发者将通用工具转化为适应特定工作流的智能伙伴。

基于 HarmonyOS 5.0 构建端侧 AI 工业质检应用,利用 MindSpore Lite 实现 NPU 加速推理,延迟低于 50ms。通过分布式软总线连接多路工业相机与管理看板,打破数据孤岛。集成 Modbus TCP 对接工控系统,支持 OTA 模型热更新。实测四路并发帧率稳定 60FPS,满足产线实时性要求,为制造业数字化转型提供可落地的鸿蒙技…

企业级 Code RAG 面临传统文本切分导致依赖断裂和上下文缺失的问题。解决方案引入 Tree-sitter 进行 AST 结构化索引,构建代码知识图谱。通过两阶段图检索(广度寻址种子节点 + 深度补链依赖)和多跳遍历,确保 LLM 获取完整依赖闭包。工程上采用启发式图注意力衰减模型分配 Context 预算,并结合 CI/CD 流水线验证编译通过率与测试…

利用 AI 提示词进行代码重构可显著提升代码可读性。内容涵盖命名规范、函数设计、逻辑简化等评价维度,提供基础、进阶、专家三级 Prompt 模板,结合多语言特性给出适配技巧,分析常见问题及解决方案,帮助开发者高效完成重构,平衡可读性与业务稳定性。
llama.cpp 是一款基于 C/C++ 的轻量级推理引擎,支持将 Hugging Face 模型转换为 GGUF 格式并在多种硬件环境下运行。文章详细说明了从零开始的环境准备工作,包括安装编译工具链及依赖项。重点阐述了针对不同硬件架构的编译方法,涵盖纯 CPU 版本构建、Apple Silicon 芯片下的 Metal 加速配置,以及 Windows 下…

利用 Selenium 无头浏览器模拟用户访问 Bing Copilot,结合 Flask 封装成 HTTP 接口。无需付费即可为 AI 智能体提供实时联网搜索能力,解决主流 API 成本高或受限的问题。代码包含服务端解析逻辑与客户端调用示例,支持集成至 LangChain 等框架。

VS Code 中 GitHub Copilot 出现授权未完成错误时,可通过重置本地会话、清除 GitHub OAuth 授权记录、清理本地缓存文件来解决。若 OAuth 流程受阻,可尝试配置网络代理或使用个人访问令牌(PAT)替代密码登录。此外,更新扩展版本、检查系统凭证管理器及查看认证日志也是有效的排查方向。