[筆記] 程式必修課!離散數學與演算法 – 50

從網路課程 程式必修課!離散數學與演算法 來淺嚐一下沒機會在課堂上所學的離散數學與演算法。或許對撰寫程式的效能提昇會有些幫助。
notes-essential-programming-discrete-math-algorithms-python-javascript-1


課程相關資訊

[連結]:https://hiskio.com/courses/1196/lectures/133759

本篇範圍:Chapter 6

請注意:本系列文章為個人對應課程的消化吸收後,所整理出來的內容。換言之,並不一定會包含全部的課程內容,也有可能會添加其他資源來說明。


內容

Hanoi Tower

有三根圓環,且有不同直徑的圓盤。一開始會在某一根柱子上,會由小到大來擺放,目的是要將所有的盤子移到最後一根柱子上,且同樣遵循由小到大來擺放。過程中,一次只能移動一個盤子,且同樣要遵循由小到大的規則。

總共的步數,會是 2 ^ n – 1 步

Coding

function hanoi (n,a,b,c) :n 代表總數;a,b,c 代表柱子

1. 如果 n === 1,將 a 的內容 pop,然後填入 c
2. 如果 n !== 1,那就是:
2-1:將 n-1 個元素從 a 移到 b : hanoi (n-1,a,c,b) ,可想成將 b,c 兩根柱子暫時互換
2-2:將 1 個元素從 a 移到 c:hanoi (1,a,b,c)
2-3:將 n-1 個元素從 b 移到 c:hanoi (n-1,b,a,c)

 


系列文章

  • [筆記] 程式必修課!離散數學與演算法 – 9
  • [筆記] 程式必修課!離散數學與演算法 – 8
  • [筆記] 程式必修課!離散數學與演算法 – 7
  • [筆記] 程式必修課!離散數學與演算法 – 6
  • [筆記] 程式必修課!離散數學與演算法 – 5
  • [筆記] 程式必修課!離散數學與演算法 – 49
  • [筆記] 程式必修課!離散數學與演算法 – 48
  • [筆記] 程式必修課!離散數學與演算法 – 47
  • [筆記] 程式必修課!離散數學與演算法 – 46
  • [筆記] 程式必修課!離散數學與演算法 – 45
  • [筆記] 程式必修課!離散數學與演算法 – 44
  • [筆記] 程式必修課!離散數學與演算法 – 43
  • [筆記] 程式必修課!離散數學與演算法 – 42
  • [筆記] 程式必修課!離散數學與演算法 – 41
  • [筆記] 程式必修課!離散數學與演算法 – 40
  • [筆記] 程式必修課!離散數學與演算法 – 4
  • [筆記] 程式必修課!離散數學與演算法 – 39
  • [筆記] 程式必修課!離散數學與演算法 – 38
  • [筆記] 程式必修課!離散數學與演算法 – 37
  • [筆記] 程式必修課!離散數學與演算法 – 36
  • [筆記] 程式必修課!離散數學與演算法 – 35
  • [筆記] 程式必修課!離散數學與演算法 – 34
  • [筆記] 程式必修課!離散數學與演算法 – 33
  • [筆記] 程式必修課!離散數學與演算法 – 32
  • [筆記] 程式必修課!離散數學與演算法 – 31
  • [筆記] 程式必修課!離散數學與演算法 – 30
  • [筆記] 程式必修課!離散數學與演算法 – 3
  • [筆記] 程式必修課!離散數學與演算法 – 29
  • [筆記] 程式必修課!離散數學與演算法 – 28
  • [筆記] 程式必修課!離散數學與演算法 – 27
  • [筆記] 程式必修課!離散數學與演算法 – 26
  • [筆記] 程式必修課!離散數學與演算法 – 25
  • [筆記] 程式必修課!離散數學與演算法 – 24
  • [筆記] 程式必修課!離散數學與演算法 – 23
  • [筆記] 程式必修課!離散數學與演算法 – 22
  • [筆記] 程式必修課!離散數學與演算法 – 21
  • [筆記] 程式必修課!離散數學與演算法 – 20
  • [筆記] 程式必修課!離散數學與演算法 – 2
  • [筆記] 程式必修課!離散數學與演算法 – 19
  • [筆記] 程式必修課!離散數學與演算法 – 18
  • [筆記] 程式必修課!離散數學與演算法 – 17
  • [筆記] 程式必修課!離散數學與演算法 – 16
  • [筆記] 程式必修課!離散數學與演算法 – 15
  • [筆記] 程式必修課!離散數學與演算法 – 14
  • [筆記] 程式必修課!離散數學與演算法 – 13
  • [筆記] 程式必修課!離散數學與演算法 – 12
  • [筆記] 程式必修課!離散數學與演算法 – 11
  • [筆記] 程式必修課!離散數學與演算法 – 10
  • [筆記] 程式必修課!離散數學與演算法 – 1
  • 按讚加入粉絲團

    延伸閱讀