休闲数学-汉诺塔

原创 2016年08月30日 14:00:08

名称:汉诺塔 (河内塔、Tower of hanoi)

发明者:爱德华·卢卡斯

故事来源:

印度一个古老传说的益智玩具。大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。

图片:

汉诺塔

游戏规则:

1、一次一个:一次只能移动一个圆 环;
2、大不压小:大圆环不能压在小圆 环上,也就是小圆环必须在大圆环上面。

操作过程:

汉诺塔
一片移动1次,两片移动3次,三片移动7次 总结 用递归来计算过程和步数
数学公式
f(1)=1 f(2)=3 f(3)=7 f(4)=?
⇒ f(3)=f(2)*2+1
⇒ f(n)=f(n-1)*2+1
⇒ f(4)=15
||得出同下公式
f(n)=2^n-1 2的n次方-1

python:

`git@code.csdn.net:snippets/1859264.git`
<php>
 # 利用递归函数移动汉诺塔:
def move(n, a, b, c):
if n == 1:
    print('move', a, '-->', c)
    return
move(n-1, a, c, b)
print('move', a, '-->', c)
move(n-1, b, a, c)

move(2, 'A', 'B', 'C')    
</php>
版权声明:本文为博主原创文章,未经博主允许不得转载。

【找回数学的感觉】1 再版汉诺塔等

尤其在学过函数式编程之后,更加觉得想在计算机技术上上一个台阶必须得有非常扎实的数学基础。然而太多学生大学开始就慢慢淡忘了数学,和高中比起来根本不是一个境界。于是我决心开设这样一个系列,我每天都会练习,...
  • NoMasp
  • NoMasp
  • 2015年06月21日 12:07
  • 2549

HDU 1207:汉诺塔II【数学】

汉诺塔II Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Su...

汉诺塔V 1995 (数学+打表+递归)

汉诺塔V Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Sub...

NYOJ 88:汉诺塔(一)【数学】

汉诺塔(一) 时间限制:1000 ms  |  内存限制:65535 KB 难度:3 描述 在印度,有这么一个古老的传说:在世界中心贝拿勒斯(在印度北部)的圣庙里,一块黄铜板上插着三根宝石...

数学之美--64汉诺塔之传说

河内之塔(Towers of Hanoi)是法国人M.Claus(Lucas)于1883年从泰国带至法国的,河内为越战时北越的首都,即现在的胡志明市;1883年法国数学家Edouard Lucas...
  • florg
  • florg
  • 2014年10月05日 23:42
  • 1062

BZOJ 1019 汉诺塔 数学 递推

Description  汉诺塔由三根柱子(分别用A B C表示)和n个大小互不相同的空心盘子组成。一开始n个盘子都摞在柱子A上, 大的在下面,小的在上面,形成了一个塔状的锥形体。  对汉诺塔的一次...

杭电--1997--汉诺塔VII--数学题

汉诺塔VII Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Sub...

程序员的数学:汉诺塔递归与非递归求解

如果对汉诺塔算法的理解有困难,建议查看《程序员的数学》:第6章 递归——自己定义自己 这一章作者详细用图形介绍了汉诺塔递归算法,便于理解,茅塞顿开! 现对该算法从递归和非递归两个方面做如下...

具体数学——汉诺塔2.0

饶有兴趣地看完了具体数学中的第一章,然后兴致满满地开始做习题,看到热身题的第二题,曰:“把有n个圆盘的塔从左边的桩柱A移动到右边的桩柱B,不允许在A和B之间直接移动,求最短的移动序列.(每一次移动都必...

递归汉诺塔

  • 2017年11月28日 23:37
  • 385B
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:休闲数学-汉诺塔
举报原因:
原因补充:

(最多只允许输入30个字)