亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

使用python實現遞歸版漢諾塔示例(漢諾塔遞歸算法)

 更新時間:2014年04月08日 11:11:56   作者:  
這篇文章主要介紹了使用python實現遞歸版漢諾塔示例(漢諾塔遞歸算法),需要的朋友可以參考下

利用python實現的漢諾塔。帶有圖形演示

復制代碼 代碼如下:

from time import sleep

def disp_sym(num, sym):
        print(sym*num, end='')

#recusion
def hanoi(a, b, c, n, tray_num):
 if n == 1:
  move_tray(a, c)
  disp(tray_num)
  sleep(0.7)

 else:
  hanoi(a, c, b, n-1, tray_num)
  move_tray(a, c)
  disp(tray_num)
  sleep(0.7)
  hanoi(b, a, c, n-1, tray_num)

def move_tray(a, b):
 for i in a:
  if i != 0:
   for j in b:
    if j != 0:
     b[b.index(j) - 1] = i
     a[a.index(i)] = 0
     return
   b.append(i)
   b.pop(0)
   a[a.index(i)] = 0
   return

def disp(tray_num):
 global a, b, c
 for i in range(tray_num):
  for j in ['a', 'b', 'c']:
   disp_sym(5, ' ')
   eval('disp_sym(tray_num - ' + j + "[i], ' ')")
   eval('disp_sym(' + j + "[i], '=')")
   disp_sym(1, '|')
   eval('disp_sym(' + j + "[i], '=')")
   eval('disp_sym(tray_num - ' + j + "[i], ' ')")

  print()

 print('---------------------------------------------------------------------------')

tray_num=int(input("Please input the number of trays:"))
tray=[]
for i in range(tray_num):
 tray.append(i + 1)
a=[0]*tray_num
b=a[:]
c=a[:]

a = tray[:]
disp(tray_num)
hanoi(a, b, c, tray_num, tray_num)

相關文章

  • 在CentOS上配置Nginx+Gunicorn+Python+Flask環(huán)境的教程

    在CentOS上配置Nginx+Gunicorn+Python+Flask環(huán)境的教程

    這篇文章主要介紹了在CentOS上配置Nginx+Gunicorn+Python+Flask環(huán)境的教程,包括安裝supervisor來管理進程的用法,整套配下來相當實用,需要的朋友可以參考下
    2016-06-06
  • 一文詳解如何在Matplotlib中更改圖例字體大小

    一文詳解如何在Matplotlib中更改圖例字體大小

    在我們處理數據的時候,需要對大量的數據進行繪圖,就免不了要使用到Matplotlib,下面這篇文章主要給大家介紹了關于如何在Matplotlib中更改圖例字體大小的相關資料,需要的朋友可以參考下
    2023-05-05
  • Python3實現zip分卷壓縮過程解析

    Python3實現zip分卷壓縮過程解析

    這篇文章主要介紹了Python3實現zip分卷壓縮過程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-10-10
  • 一篇文章弄懂Python中所有數組數據類型

    一篇文章弄懂Python中所有數組數據類型

    這篇文章主要給大家介紹了關于Python中所有數組數據類型的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用Python具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-06-06
  • Python提取網頁中超鏈接的方法

    Python提取網頁中超鏈接的方法

    很多人在一開始學習Python,會打算用作爬蟲開發(fā)。既然要做爬蟲,首先就要抓取網頁,并且從網頁中提取出超鏈接地址。這篇文章給大家分享一個簡單的方法,有需要的可以參考借鑒。
    2016-09-09
  • python中的json總結

    python中的json總結

    JSON(JavaScript Object Notation, JS 對象簡譜) 是一種輕量級的數據交換格式。本文重點給大家介紹python中的json,感興趣的朋友跟隨小編一起看看吧
    2018-10-10
  • 三步實現Django Paginator分頁的方法

    三步實現Django Paginator分頁的方法

    這篇文章主要介紹了三步實現Django Paginator分頁的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-06-06
  • 利用python對Excel中的特定數據提取并寫入新表的方法

    利用python對Excel中的特定數據提取并寫入新表的方法

    今天小編就為大家分享一篇利用python對Excel中的特定數據提取并寫入新表的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-06-06
  • pycharm下載依賴一直失敗的問題踩坑指南

    pycharm下載依賴一直失敗的問題踩坑指南

    在使用pycharm學習python的時候,經常需要第三方庫,沒有第三方庫程序就會報錯,下面這篇文章主要給大家介紹了關于pycharm下載依賴一直失敗的問題踩坑指南,需要的朋友可以參考下
    2023-06-06
  • 利用python、tensorflow、opencv、pyqt5實現人臉實時簽到系統

    利用python、tensorflow、opencv、pyqt5實現人臉實時簽到系統

    這篇文章主要介紹了利用python、tensorflow、opencv、pyqt5實現人臉實時簽到系統,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-09-09

最新評論