欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

使用python實(shí)現(xiàn)遞歸版漢諾塔示例(漢諾塔遞歸算法)

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

利用python實(shí)現(xiàn)的漢諾塔。帶有圖形演示

復(fù)制代碼 代碼如下:

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)

相關(guān)文章

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

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

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

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

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

    Python3實(shí)現(xiàn)zip分卷壓縮過(guò)程解析

    這篇文章主要介紹了Python3實(shí)現(xiàn)zip分卷壓縮過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-10-10
  • 一篇文章弄懂Python中所有數(shù)組數(shù)據(jù)類(lèi)型

    一篇文章弄懂Python中所有數(shù)組數(shù)據(jù)類(lèi)型

    這篇文章主要給大家介紹了關(guān)于Python中所有數(shù)組數(shù)據(jù)類(lèi)型的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Python具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06
  • Python提取網(wǎng)頁(yè)中超鏈接的方法

    Python提取網(wǎng)頁(yè)中超鏈接的方法

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

    python中的json總結(jié)

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

    三步實(shí)現(xiàn)Django Paginator分頁(yè)的方法

    這篇文章主要介紹了三步實(shí)現(xiàn)Django Paginator分頁(yè)的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06
  • 利用python對(duì)Excel中的特定數(shù)據(jù)提取并寫(xiě)入新表的方法

    利用python對(duì)Excel中的特定數(shù)據(jù)提取并寫(xiě)入新表的方法

    今天小編就為大家分享一篇利用python對(duì)Excel中的特定數(shù)據(jù)提取并寫(xiě)入新表的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-06-06
  • pycharm下載依賴(lài)一直失敗的問(wèn)題踩坑指南

    pycharm下載依賴(lài)一直失敗的問(wèn)題踩坑指南

    在使用pycharm學(xué)習(xí)python的時(shí)候,經(jīng)常需要第三方庫(kù),沒(méi)有第三方庫(kù)程序就會(huì)報(bào)錯(cuò),下面這篇文章主要給大家介紹了關(guān)于pycharm下載依賴(lài)一直失敗的問(wèn)題踩坑指南,需要的朋友可以參考下
    2023-06-06
  • 利用python、tensorflow、opencv、pyqt5實(shí)現(xiàn)人臉實(shí)時(shí)簽到系統(tǒng)

    利用python、tensorflow、opencv、pyqt5實(shí)現(xiàn)人臉實(shí)時(shí)簽到系統(tǒng)

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

最新評(píng)論