八皇后算法的另外一种实现(c#版本)

八皇后:
算法

  八皇后问题,是一个古老而著名的问题,是回溯算法的典型案例。该问题是国际西洋棋棋手马克斯·贝瑟尔于1848年提出:在8×8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。 高斯认为有76种方案。1854年在柏林的象棋杂志上不一样的做者发表了40种不一样的解,后来有人用图论的方法解出92种结果。计算机发明后,有多种计算机语言能够解决此问题。spa

 

图示:.net

  

 

个人解决方案:blog

  网上有大量的方法,大部分抽象难以理解,而且有知乎大神整理出了10行代码的版本,一时间惊为天人,众人错愕。如何用 C++ 在 10 行内写出八皇后?你若是看得懂各路大神装的逼,能够关闭本文章了。get

  

  如今给出个人我的版本,算法过程描述的比较详细,而且加入了大量注释,尤为是流程控制方面的注解比较多,方便理解。算法核心部分是基于已定位置的未知位置计算。本次实现方式并不是是效率最高的方式,可是对于刚刚接触这个算法,而又整理不出思路的人来讲,颇有帮助。源码

 

结果如图:it

  

  

 

 

 

源码以下八皇后io

相关文章
相关标签/搜索