搜索
写经验 领红包
 > 科技

算法汉诺塔问题(算法汉诺塔问题3个答案)

导语:算法-汉诺塔

汉诺塔是一种移动圆盘的游戏。

传说: 在世界中心贝拿勒斯(在印度北部)的圣庙里,一块黄铜板上插着三根宝石针。印度教的主神梵天在创造世界的时候,在其中一根针上从下到上地穿好了由大到小的64片金片,这就是所谓的汉诺塔。不论白天黑夜,总有一个僧侣在按照下面的法则移动这些金片:一次只移动一片,不管在哪根针上,小片必须在大片上面。僧侣们预言,当所有的金片都从梵天穿好的那根针上移到另外一根针上时,世界就将在一声霹雳中消灭,而梵塔、庙宇和众生也都将同归于尽。即使是每微秒移动一次, 也需要5000世纪的时间。

规则:

证明:

数学归纳法

数学归纳法是证明某个命题关于整数n(对所有的n>=n0)成立的一种一般的方法。首先,当n为最小值n0时我们证明命题,这称为基础,然后假设对于包含再n0和n-1之间的所有值,已经证明命题成立,对于n>n0证明命题,这种方法称为数学归纳法。

根据以上内容,可知:

f(0)=0 f(1) = 1 f(2) = 3 f(3) = 7 f(4) = 15 f(5) = 31 …

好像有点规律, f(n) = 2^n -1

那么这个猜想正确吗?用数学归纳法证明一下。

证明

f(0) = 2^0 -1,

f(1) = 2^1 -1,

f(2) = 2^2 -1,都是正确的

假设n-1取代n的时候上述猜想成立,且对于n>0建立归纳,

f(n) = 2f(n-1) + 1

= 2(2^(n-1)-1)+1

= 2^n-2+1

= 2^n -1

因此,对于n来说,上面的猜想依然成立

本文内容由小莉整理编辑!