关于递归写法的精妙记录
来源:互联网 发布:UC浏览器mini java版 编辑:程序博客网 时间:2024/06/05 23:04
之前对递归的了解就限制于 n! 之类的用法,在学习Python的过程中,接触到了关于汉诺塔的移动的递归介绍,觉得递归实在是神奇。这种思想的迸发我希望能记录下来,并激励。
有A,B,C三个柱子,所有的圆盘都放在A上面(具体的规则请百度汉诺塔)。
def move(n, a, b, c): if n ==1: print a, '-->', c return move(n-1, a, c, b) print a, '-->', c move(n-1, b, a, c)move(4, 'A', 'B', 'C')编程语言是 Python
这里对圆盘的移动的分析是: 如果A有N个圆盘,可以把A看做是 N 和 (N-1)的集合,现在就是要把 (N-1) 移到B上面,再把A的N移到C上。在之后就以B为A(即为起始柱子),A为B (即为备用柱子)。 问题变成了B看做(N-1)和(N-2)的集合,现在把(N-2)移到A,再把B中的(N-1)移到C上。此时 A B 状态返回开始状态继续循环。
递归思想有点不同于我的常规想法,仅以记录,看到的时候能够提醒自己开拓思维。
0 0
- 关于递归写法的精妙记录
- 关于汉诺塔算法的递归写法
- 关于求平方和的,递归和非递归的写法
- 关于一个tree的写法的记录
- 关于jQuery插件写法的记录
- 关于webapp的浏览记录写法
- 数据库学习:oracle的递归写法,分析函数写法,以及teradata的取一定数量记录的写法
- 递归的写法
- sql 递归的写法
- 递归函数的写法
- java递归的写法
- Perl分割字符串的一个精妙的写法
- 递归与非递归的各种写法
- DFS的非递归写法
- 归并算法的递归写法
- 插入排序的递归写法
- Java 基本的递归写法
- 快速排序的递归写法
- IComparable<T> 与 IComparer<T>
- BZOJ1044 [HAOI2008]木棍分割(二分答案/单调性优化dp+递推优化)
- 穷举法的应用
- Objective-C 单例模式
- 在PB中如何对ASA进行数据备份
- 关于递归写法的精妙记录
- 基于ExtJs的桌面系统(3)
- 改变HyperV虚拟的Ubuntu屏幕分辨率
- hdu4445 三分+二分+区间覆盖
- Android_AppWidget详解
- DomXSS以及绕过浏览器检测机制方法总结
- Jarida 新闻杂志博客 WordPress主题[更新至v2.1.1]
- AboutMe 3D简历卡片 WordPress主题[v1.6]
- Buzz 多用途 WordPress主题[v1.10]