pc科技 牛牛机器人:有道题大家帮忙做一下

来源:百度文库 编辑:中科新闻网 时间:2024/05/11 01:15:02
在世界中心拿勒斯[印度的北部]的圣庙里,一块黄铜板上插这三根宝石针.印度教的主神梵天在创造世界的时候,在其中一根针上从下到上穿好了由大到小的64片金片,这就是所谓梵塔.不论白天黑夜总有一个僧侣在按照下面的法则移动这些金片;一次只移动一片;不管在哪根针上,小片必须在大片上面,这样算来从地一个针上的金片到第三根针的金片要多长时间?? 答出来还追加分

不管这个传说的可信度有多大,如果考虑一下把64片金片,由一根针上移到另一根针上,并且始终保持上小下大的顺序,一共需要移到多少次?那么,不难发现:不管把哪一片移到另一根针上,移动的次数都要比移动上面一片增加一倍。这样,移动第1片只需1次,第2片需2次,第3片需22……第64片需264次。全部次数为
1+2+22+…+263=264-1=18446744073709551615。假如每秒钟一次,共需多长时间呢?一年大约有31536926秒,计算表明移完这些金片需要5800多亿年,这比地球寿命还要长!事实上,世界、梵塔、庙宇和众生都早已灰飞烟灭。

多经典的题目,汉诺塔哦。

设将N块金片按要求从1在2的帮助下移动到3需要的移动次数为(N).
于是T(N+1)=1+T(N)+1+T(N)=2+3*T(N)

过程如下:0,将N块从1移到3,耗时T(N)
1,将第N+1块从1移到2,耗时1
2,将N块从3移回到1,耗时T(N)
3,将第N+1块从2移到3,耗时1
4,将N块从1移到3,耗时T(N).

于是有递推公式
T(1) = 1 (平凡的)
T(N) = 3*T(N-1)+2 (N>1)
由公式求得通式:
T(N) = 3^(N-1)+3^(N-1) - 1
= 2*3^(N-1)-1

a^b代表a的b次幂

假设有n片,移动次数是f(n).显然f(1)=1,f(2)=3,f(3)=7,且f(k+1)=2*f(k)+1。此后不难证明f(n)=2^n-1。n=64时,

f(64)= 2^64-1=18446744073709551615

假如每秒钟一次,共需多长时间呢?一年大约有 31536926 秒,计算表明移完这些金片需要5800多亿年

移动一次需要多长时间?一天?

18446744073709551615

这是啥题?哲学?数学?