关于汉诺塔问题的分析
Hanoi汉诺塔问题古代有一个梵塔塔内有3个柱子A、B、C开始时A柱上有64个金盘金盘大小不等大的在下小的在上。有一个老和尚想把这64个金盘从A柱移动到C柱但规定每次只允许移动一个盘且在移动过程中在3个柱上都始终保持大盘在下小盘在上。在移动过程中可以利用B柱。要求编程计算总共需要移动多少次盘子。据说移动完成就是世界的末日。一、提出问题我们先明确一下问题要把n 个盘子从 A 柱移动到 C 柱假设需要的移动次数是f(n)。那我们想知道这个f(n)到底等于多少二、拆分问题直接想 n 个盘子怎么移会比较乱。所以我们把它拆成三步来看。要把 n 个盘子从 A 移到 C最关键的一步是把最底下那个盘子从 A 移到 C。那为了做到这一点需要先做什么第一步把上面n-1 个盘子从 A 移到 B。这一步需要的次数就是f(n-1)。第二步把最底下那个盘子从 A 移到 C。这一步只需要1 次。第三步再把 B 上的n-1 个盘子移到 C。这一步需要的次数同样是f(n-1)。所以总的移动次数就是f(n)f(n−1)1f(n−1)合并一下f(n)2f(n−1)1三、边界条件那 n 等于 1 的时候呢只有一个盘子直接从 A 移到 C所以f(1)1这样我们就有了完整的递推关系f(n)2f(n−1)1, f(1)1四、展开递推写成C语言的代码是long long hanoi_count(int n){if (n 1)return 1;elsereturn 2 * hanoi_count(n - 1) 1;}或者更简洁long long f(int n){return n 1 ? 1 : 2 * f(n - 1) 1;}

相关新闻

Linux密码修改全指南:从root到普通用户、重置到sudo权限实战

Linux密码修改全指南:从root到普通用户、重置到sudo权限实战

1. 先搞清楚:Linux里的密码到底存在哪、怎么才算“改成功”做运维这些年,被人问得最多的问题之一就是“帮我改一下root密码”,其次是“这个普通用户的密码忘了,怎么办”。root、普通用户、密码,这三个词背后的深意其实…

2026/10/4 2:32:05 阅读更多 →
CANopen SDO与PDO配置原理及COB-ID映射实战指南

CANopen SDO与PDO配置原理及COB-ID映射实战指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 2:31:04 阅读更多 →
用例建模之详解用例和用例规约

用例建模之详解用例和用例规约

2026/10/4 2:31:04 阅读更多 →

最新新闻

SQL Server随机查询的几种写法与封装实践:从NEWID()到自定义函数

SQL Server随机查询的几种写法与封装实践:从NEWID()到自定义函数

搞随机查询这种需求,估计大多数SQL Server开发都写过。一句ORDER BY NEWID()下去,看似轻松搞定,真正上线后遇到大表慢、抽样不准、脚本重复维护这些问题,才是最磨人的。最近项目里有个抽奖节奏的需求,要从用户表里随机…

2026/10/4 3:03:22 阅读更多 →
UObject 详解:UE4 万物之源的核心机制与实战避坑指南

UObject 详解:UE4 万物之源的核心机制与实战避坑指南

聊到 Unreal Engine 4 的核心概念,UObject 几乎是绕不开的第一站。不少刚入坑的朋友会把 UObject 简单理解成“一个所有类都要继承的基类”,这个理解不算错,但只看到了一层皮毛。真正用起来之后你会发现,UE4 整套对象系统的入口级…

2026/10/4 3:03:22 阅读更多 →
Intersection Observer 实战:高效检测元素可见性的前端性能优化方案

Intersection Observer 实战:高效检测元素可见性的前端性能优化方案

先说一个我自己的结论:Intersection Observer 是过去几年里,前端性能优化性价比最高的 API 之一。它解决的核心问题非常朴素——怎么知道一个元素“真的出现在用户视野里了”。在懒加载图片、无限滚动、曝光埋点、滚动进入动画这些场景里,我们…

2026/10/4 3:03:22 阅读更多 →
2051张蟑螂图像:YOLO真实场景落地的数据基石

2051张蟑螂图像:YOLO真实场景落地的数据基石

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 3:03:22 阅读更多 →
中北镇看感冒去哪个门诊

中北镇看感冒去哪个门诊

(朋友提问)“我最近有点感冒,咳嗽还低烧,中北镇这边看门诊该去哪儿呀?要挂什么科,流程麻烦吗?”(我的回答)感冒算是常见病,处理起来不算复杂。如果是成人&…

2026/10/4 3:03:22 阅读更多 →
用MRAM替代Flash:工业控制器防掉电丢数据的完整存储方案

用MRAM替代Flash:工业控制器防掉电丢数据的完整存储方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 3:02:21 阅读更多 →

日新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →

周新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/2 10:36:31 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/3 9:42:35 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/3 9:42:36 阅读更多 →