重念一次早該補起來的「資料結構與演算法」。這篇筆記下電腦科學中經典的西洋棋 8 皇后問題。
課程相關資訊
[連結]:https://hiskio.com/courses/572/lectures/29987
本篇範圍:Chapter 12
請注意:本系列文章為個人對應課程的消化吸收後,所整理出來的內容。換言之,並不一定會包含全部的課程內容,也有可能會添加其他資源來說明。
內容
八皇后問題
在一個西洋棋盤 ( 8*8 ) 的格子中,放上 8 個皇后,且彼此間不能吃掉對方。由於皇后的走法是直線、橫線和對角線,亦即在每一個皇后的角度來看,其直線、橫線和對角線上都不能有其他皇后。
更進一步,想解決的是 N*N 的格子中,放上 n 個皇后的狀況
程式碼
運用回朔法 Backtracking 來做,當你發現其中一個狀況不行,那就不用再行測試了,進而往前回朔。