热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

益智汉诺塔的递推公式

还原动画演示柱子A柱子B柱子C原理很简单--益智汉诺塔的递推公式locals0--累计步数localn5--求解的层数nlocalfunctionmove(pos1,pos3)ss

3c595a7f7b274350bc56169fe40aa618.jpg

还原动画演示 629beb31ae8f46229dd10bbdf66c4378.gif

            柱子A           柱子B             柱子C

 

 

原理很简单


--益智汉诺塔的递推公式

local s=0 --累计步数
local n=5 --求解的层数n
local function move(pos1,pos3) 
s=s+1  
print("步数",s,pos1,"移动到>",pos3)
end
local function hanoi(n,pos1,pos2,pos3)
if n==1 then move(pos1,pos3)
else
hanoi(n-1,pos1,pos3,pos2)
move(pos1,pos3)
hanoi(n-1,pos2,pos1,pos3)
end
if n==0 then return end
end
print(n,"层汉诺塔,解法步骤--共计步数:",(2^n)-1)
hanoi(n,"A","B","C")

286a0efe755d47dd8cba3253fb0c4bcb.jpg

c3a619f55d334f3eb99b133712d263f8.jpg 

 6ec62c6f233848c980f0eba07459e46c.jpg

 



推荐阅读
  • 深入解析Pytest Fixture与Conftest的高级应用
    本文详细探讨了Pytest中的Fixture机制及其在conftest.py文件中的全局配置应用,涵盖Fixture的基本概念、定义、多种使用场景以及作用域等内容,适合希望深入了解Pytest测试框架的开发者。 ... [详细]
  • 本文介绍了如何利用高德地图API实现一个高效的地点选择组件,适用于需要用户选择具体位置的应用场景,如活动邀请函填写等。该组件支持从地图中选择地点,并自动将地点信息回填至表单中。 ... [详细]
  • 本文将介绍一个名为decorator的Python库,尽管已存在多年,但其知名度并不高。本文假设读者已了解装饰器的基本概念,重点探讨如何利用decorator库简化装饰器的编写过程,以及它如何解决装饰器带来的签名问题。 ... [详细]
  • 本文介绍了 Python 中 *args 和 **kwargs 的使用方法,以及如何通过 lambda 表达式、map 和 filter 函数处理数据。同时,探讨了 enumerate 和 zip 函数的应用,并展示了如何使用生成器函数处理大数据集。 ... [详细]
  • 本文详细介绍了 Python 的 scipy 库中 stats 模块下的 kurtosistest() 函数,包括其定义、用途及如何使用。 ... [详细]
  • Python面向对象编程入门(十二):深入理解类与实例
    本文详细介绍了Python中的新式类与经典类的区别,包括类的定义、实例化过程、方法调用机制、类属性的使用及查看方式等内容,并通过具体示例展示了如何创建和使用类。 ... [详细]
  • 详解JavaScript的原型与原型链_javascript技巧
    这篇文章主要为大家详细介绍了JavaScript原型与原型链,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下, ... [详细]
  • 剑指Offer算法题解析:实现带Min方法的栈
    本文深入探讨了《剑指Offer》系列中的一道经典算法题——设计一个支持常数时间内检索最小元素的栈。通过详细分析与代码示例,帮助读者理解并掌握这一问题的核心解法。 ... [详细]
  • 深入解析C语言中的sizeof操作符陷阱
    本文通过一个具体的例子探讨了C语言中sizeof操作符的使用陷阱,并详细分析了导致程序行为异常的原因。 ... [详细]
  • 在软件开发过程中,正确判断数组是否为空对于避免程序错误至关重要。本文将探讨几种有效的判断方法,并介绍如何使用PHP中的array_filter函数来过滤多维数组中的空值。 ... [详细]
  • 本文探讨了在多媒体软件开发中处理大型WAV音频文件的策略。由于Windows提供的`sndPlaySound` API仅适用于小文件,对于大型WAV文件,我们介绍了使用MCI(Media Control Interface)命令的一种有效解决方案。 ... [详细]
  • InnoDB and multicolumns foreign key ... [详细]
  • CSV 文件的存取
    CSV文件介绍CSV(Comma-SeparatedValues),中文通常叫做逗号分割值。CSV文件由任意数目的记录(行& ... [详细]
  • Mario Peshev,自1999年起从事编程工作,现任DevriX首席执行官。本文最初发布于Quora,探讨了计算机技术与编程语言的区别及其对软件开发的影响。 ... [详细]
  • 本文探讨了在Go语言中使用接口的必要性和其带来的优势,特别是当直接通过方法调用也能实现相同功能时,为什么还需要接口。 ... [详细]
author-avatar
mobiledu2502920897
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有