八皇后算法的另外一種實現(c#版本)

八皇后:
算法

  八皇后問題,是一個古老而著名的問題,是回溯算法的典型案例。該問題是國際西洋棋棋手馬克斯·貝瑟爾於1848年提出:在8×8格的國際象棋上擺放八個皇后,使其不能互相攻擊,即任意兩個皇后都不能處於同一行、同一列或同一斜線上,問有多少種擺法。 高斯認爲有76種方案。1854年在柏林的象棋雜誌上不一樣的做者發表了40種不一樣的解,後來有人用圖論的方法解出92種結果。計算機發明後,有多種計算機語言能夠解決此問題。spa

 

圖示:.net

  

 

個人解決方案:blog

  網上有大量的方法,大部分抽象難以理解,而且有知乎大神整理出了10行代碼的版本,一時間驚爲天人,衆人錯愕。如何用 C++ 在 10 行內寫出八皇后?你若是看得懂各路大神裝的逼,能夠關閉本文章了。get

  

  如今給出個人我的版本,算法過程描述的比較詳細,而且加入了大量註釋,尤爲是流程控制方面的註解比較多,方便理解。算法核心部分是基於已定位置的未知位置計算。本次實現方式並不是是效率最高的方式,可是對於剛剛接觸這個算法,而又整理不出思路的人來講,頗有幫助。源碼

 

結果如圖:it

  

  

 

 

 

源碼以下八皇后io

相關文章
相關標籤/搜索