一 . 问题描述
八皇后问题 ( 英文 : Eight queens ),是由国际 西洋棋 棋手马克斯·贝瑟尔于1848年提出的问题,是 回溯算法 的典型案例。. 问题表述为:在8×8格的 国际象棋 上摆放8个 皇后 ,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。. 高斯 认为有76种方案。. 1854年在 柏林 的象棋杂志上不同的作者发表了40种不同的解,后来有人用 图论 的方法解出92种结果。. 如果经过±90度、±180度旋转,和对角线对称变换的摆法看成一类,共有42类。. 计算机 发明后,有多种计算机语言可以编程解决此问题。.
二 . 算法思路
1. 第一个皇后先放在第一行第一列
2.第二个皇后放在第二行 第一列 ,判断是否可以 如果不可以 继续放在第二列 ,第三列...
依次把所有的列 放完 找到合适的
3.继续放第三个皇后 ,按照2的方式 ,知道所有皇后放完 不冲突,找到一个正解;
4.得到一个正解后,压的栈就会回退上一个栈 ,开始回溯 一直到回溯到第一个皇后在第 一列的所有情况 &#