码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2016-12-02 09:43:34      阅读:185      评论:0      收藏:0      [点我收藏+]

标签:各路   国际   href   核心部分   c++   16px   解决方案   知乎   计算机语言   

八皇后:

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

 

图示:

  技术分享

 

我的解决方案:

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

  

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

 

结果如图:

  技术分享

  

 

 

 

源码如下八皇后

 

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

标签:各路   国际   href   核心部分   c++   16px   解决方案   知乎   计算机语言   

原文地址:http://www.cnblogs.com/xianerwonder/p/6124505.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!