這個問題是由數學家 Euler
提出的:西洋棋的騎士能否走完一個空棋盤的六十四格,而且每格只走過一次。這條路徑,在圖論上稱為「Hamiltonian path」
,而每個格子稱為「vertex」,每個格子能向外走出的步數稱為「該vertex的degree」。
本程式利用一種方法(accessibility
heuristic),由任意點出發,找出一條Hamiltonian
path:先走到degree少的格子,如此的話,越到後面,剩餘格子的degree可能比較大,則不容易因無路可走而失敗。運用此方法,在八格見方的棋盤上,由任一點找出一條Hamiltonian
path的機率非常高。
- Start
- 點選棋盤上任意一點做為起點,按Start開始。
- Reset
- 若要重新開始,請按Reset。
- second/step
- 選擇一數字,該數字代表「走一步停的秒數」。
- 過程
-
1.騎士的位置代表下一步的選擇。
2.走過的格子將會變為藍色,並有一綠色數字,表示該格為第幾步。
3.每格右下角有紅色數字,為該格的degree,會隨著騎士的移動而改變。
4.騎士走完棋盤之後,會在棋盤上每一格印出綠色數字,代表其為第幾步。
|
|
|
(若有指正、疑問……,可以在此 留言 或 寫信 給我們。)
|
|
EpisteMath (c) 2000 中央研究院數學所、台大數學系
各網頁文章內容之著作權為原著作人所有
|
|