漢諾塔(又稱河內塔)問題是源於印度乙個古老傳說的益智玩具。大梵天創造世界的時候做了三根金剛石柱子,在一根柱子上從下往上按照大小順序摞著64片**圓盤。大梵天命令婆羅門把圓盤從下面開始按大小順序重新擺放在另一根柱子上。並且規定,在小圓盤上不能放大圓盤,在三根柱子之間一次只能移動乙個圓盤。(來自搜狗百科)
法國數學家愛德華·盧卡斯曾編寫過乙個印度的古老傳說:在世界中心貝拿勒斯(在印度北部)的聖廟裡,一塊黃銅板上插著三根寶石針。印度教的主神梵天在創造世界的時候,在其中一根針上從下到上地穿好了由大到小的64片金片,這就是所謂的漢諾塔。不論白天黑夜,總有乙個僧侶在按照下面的法則移動這些金片:一次只移動一片,不管在哪根針上,小片必須在大片上面。僧侶們預言,當所有的金片都從梵天穿好的那根針上移到另外一根針上時,世界就將在一聲霹靂中消滅,而梵塔、廟宇和眾生也都將同歸於盡。(來自搜狗百科)
用python來演示一下:
**
count =
0def
hanoi
(n, a, b, c)
:global count
if n ==1:
count +=
1else
: hanoi(n -
1, a, c, b)
hanoi(
1, a, b, c)
hanoi(n -
1, b, a, c)
hanoi(n,
'a',
'b',
'c')
print
(count)
n
count11
2337
415531
……
201048575
可以看出count = 2n-1,當n = 64時,count = 264 - 1 = 18,446,744,073,709,551,615,假如一秒一步,平年31536000秒,閏年31622400秒,也就是說需要584,554,049,253.85542985900539442023年也就是5845.54億年才能完成 ,也許那時人類早就不在太陽系了。
漢諾塔的問題
參考 漢諾塔 漢諾塔 又稱河內塔 問題是源於印度乙個古老傳說的益智玩具。大梵天創造世界的時候做了三根金剛石柱子,在一根柱子上從下往上按照大小順序摞著64片 圓盤。大梵天命令婆羅門把圓盤從下面開始按大小順序重新擺放在另一根柱子上。並且規定 在小圓盤上不能放大圓盤,在三根柱子之間一次只能移動乙個圓盤。假...
有趣的漢諾塔問題
乙個只能用遞迴的方法來解決的問題,問題描述 有三根標號為a,b,c的柱子,在a上放著64個金盤,每乙個都比下面的略小,現在需要把a柱上的盤子全部移到c柱上,移動的條件是 一次只能移動乙個金盤,移動過程中大金盤不能放在小金盤的上面 結題思路 設a柱上盤子總數為n,如果n 1,則將盤子從a移到c,否則執...
漢諾塔問題 到底需要多少時間
學過計算機的基本都對漢諾塔問題很熟悉了,即使沒有學過計算機的的,想必也或多或少的了解漢諾塔問題,這篇文章通過數學的方式來求解這個問題。傳說 在世界中心貝拿勒斯 在印度北部 的聖廟裡,一塊黃銅板上插著三根寶石針。印度教的主神梵天在創造世界的時候,在其中一根針上從下到上地穿好了由大到小的64片金片,這就...