漢諾塔搬運過程的python實現(原創
阿新 • • 發佈:2018-12-13
法國數學家愛德華·盧卡斯曾編寫過一個印度的古老傳說:在世界中心貝拿勒斯的聖廟裡,一塊黃銅板上插著三根寶石針。印度教的主神梵天在創造世界的時候,在其中一根針上從下到上地穿好了由大到小的64片金片,這就是所謂的漢諾塔。不論白天黑夜,總有一個僧侶在按照下面的法則移動這些金片:一次只移動一片,不管在哪根針上,小片必須在大片上面。在此用python實現整個漢諾塔的搬運過程。
def tower(num,start,end): ... if num==1: ... print('1->{}'.format(end)) ... return 0 ... l=['A','B','C'] ... l.remove(start) ... l.remove(end) ... tower(num-1,start,l[0]) ... print('{0}->{1}'.format(num,end)) ... tower(num-1,l[0],end)
執行結果如下:
整個過程是先將除最底層的金片不動,將上層所有金片移動至除始末位置之外的塔柱上。以此類推,用遞迴來實現。
本人python小白,還希望請各位高手多多指點。