8皇后问题
前言
八皇后问题是一个古老而著名的问题,是回溯算法的典型例题。该问题是十九世纪著名的数学家高斯1850年提出:在8X8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。
分析
-
我们可以逐行或者逐列来进行可行摆放方案的遍历,每一行(或列)遍历出一个符合条件的位置,接着就到下一行或列遍历下一个棋子的合适位置,这种遍历思路可以保证我们遍历过程中有一个条件是绝对符合的——就是下一个棋子的摆放位置与前面的棋子不在同一行(或列)。
接下来,我们只要判断当前位置是否还符合其他条件,如果符合,就遍历下一行(或列)所有位置,看看是否继续有符合条件的位置,以此类推,如果某一个行(或列)的所有位置都不合适,就返回上一行(或列)继续该行(或列)的其他位置遍历,当我们顺利遍历到最后一行(或列),且有符合条件的位置时,就是一个可行的8皇后摆放方案,累加一次八皇后可行方案的个数,然后继续遍历该行其他位置是否有合适的,如果没有,则返回上一行,遍历该行其他位置,依此下去。这样一个过程下来,我们就可以得出所有符合条件的8皇后摆放方案了。这是一个深度优先遍历的过程,同时也是经典的回溯递归思路。 -
把当前列N的前面的某一列设为m,则m的所有取值为{m>=0,m<N}的集合,故又可在上面式子的基础,归纳为如下:
cols[N] != cols[m](与第m列的棋子不在同一行)
cols[N] != cols[m] -(N-m)(>=0 ,与第m列的棋子不在同一斜线上)
cols[N] != cols[m] + (N-m) (<=8-1,与第m列的棋子不在同一反斜线上)
具体到代码,很显然,取m的所有值只需要一句循环,同时我们为每一列定义一个长度为8的布尔数组row[],下标同样是从0开始,我们规定当row[i]=true时,表示该列第i行不能放棋子。这样我们就能写成下列程序段了:
boolean[] rows = new boolean[8];
for(int m=0;m<N;i++){
rows[cols[m]]=true;//当前列N的棋子不能放在前面列m的棋子所在行。
int d = N-m;
//该句用于设置当前列N的棋子不能放在前面列m的棋子的斜线上
if(cols-d >= 0)rows[cols-d]=true;
// 该句用于设置当前列N的棋子不能放在前面列m的棋子的反斜线上
if(cols+d <=8-1)rows[cols+d]=true;
}
完整的代码
public class Queen8 {
public static int num = 0; // 累计方案总数
public static final int MAXQUEEN = 8;// 皇后个数,同时也是棋盘行列总数
// 定义cols数组,表示8列棋子摆放情况;下标表示列数,值表示行数
public static int[] cols = new int[MAXQUEEN];
public void start() {
// 核心函数
getArrangement(0);
System.out.print("\n");
System.out.println(MAXQUEEN + "皇后问题有" + num + "种摆放方法。");
}
//当前遍历到n行
public void getArrangement(int n) {
// 遍历第n列所有不合法的行,并用rows数组记录,不合法即 rows[i]=true
boolean[] rows = new boolean[MAXQUEEN];
for (int i = 0; i < n; i++) {
//与第i列的棋子不在同一行
rows[cols[i]] = true;
int d = n - i;
if (cols[i] - d >= 0)
// 与第i列的棋子不在同一斜线上
rows[cols[i] - d] = true;
if (cols[i] + d <= MAXQUEEN - 1)
// 与第i列的棋子不在同一反斜线上
rows[cols[i] + d] = true;
}
//一个循环,如果当前行没有满足要求,可以移动下一个位置
for (int i = 0; i < MAXQUEEN; i++) {
// 判断该行是否合法,如果所有不合法,就退出这个循环了,然后相当于返回了上一步,继续查找。
if (rows[i])
continue;
// 设置当前列合法棋子所在行数
cols[n] = i;
// 当前列不为最后一列时
if (n < MAXQUEEN - 1) {
getArrangement(n + 1);
} else {
// 累计方案个数
num++;
// 打印棋盘信息
printChessBoard();
}
}
}
public void printChessBoard() {
System.out.print("第" + num + "种走法 \n");
for (int i = 0; i < MAXQUEEN; i++) {
for (int j = 0; j < MAXQUEEN; j++) {
if (i == cols[j]) {
System.out.print("0 ");
} else
System.out.print("+ ");
}
System.out.print("\n");
}
}
public static void main(String args[]) {
new Queen8().start();;
}
}
结果:
第1种走法
0 + + + + + + +
+ + + + + + 0 +
+ + + + 0 + + +
+ + + + + + + 0
+ 0 + + + + + +
+ + + 0 + + + +
+ + + + + 0 + +
+ + 0 + + + + +
第2种走法
0 + + + + + + +
+ + + + + + 0 +
+ + + 0 + + + +
+ + + + + 0 + +
+ + + + + + + 0
+ 0 + + + + + +
+ + + + 0 + + +
+ + 0 + + + + +
第3种走法
0 + + + + + + +
+ + + + + 0 + +
+ + + + + + + 0
+ + 0 + + + + +
+ + + + + + 0 +
+ + + 0 + + + +
+ 0 + + + + + +
+ + + + 0 + + +
第4种走法
0 + + + + + + +
+ + + + 0 + + +
+ + + + + + + 0
+ + + + + 0 + +
+ + 0 + + + + +
+ + + + + + 0 +
+ 0 + + + + + +
+ + + 0 + + + +
第5种走法
+ + + + + 0 + +
0 + + + + + + +
+ + + + 0 + + +
+ 0 + + + + + +
+ + + + + + + 0
+ + 0 + + + + +
+ + + + + + 0 +
+ + + 0 + + + +
第6种走法
+ + + 0 + + + +
0 + + + + + + +
+ + + + 0 + + +
+ + + + + + + 0
+ 0 + + + + + +
+ + + + + + 0 +
+ + 0 + + + + +
+ + + + + 0 + +
第7种走法
+ + + + 0 + + +
0 + + + + + + +
+ + + + + + + 0
+ + + 0 + + + +
+ 0 + + + + + +
+ + + + + + 0 +
+ + 0 + + + + +
+ + + + + 0 + +
第8种走法
+ + 0 + + + + +
0 + + + + + + +
+ + + + + + 0 +
+ + + + 0 + + +
+ + + + + + + 0
+ 0 + + + + + +
+ + + 0 + + + +
+ + + + + 0 + +
第9种走法
+ + + + 0 + + +
0 + + + + + + +
+ + + 0 + + + +
+ + + + + 0 + +
+ + + + + + + 0
+ 0 + + + + + +
+ + + + + + 0 +
+ + 0 + + + + +
第10种走法
+ + + + + + 0 +
0 + + + + + + +
+ + 0 + + + + +
+ + + + + + + 0
+ + + + + 0 + +
+ + + 0 + + + +
+ 0 + + + + + +
+ + + + 0 + + +
第11种走法
+ + + + 0 + + +
0 + + + + + + +
+ + + + + + + 0
+ + + + + 0 + +
+ + 0 + + + + +
+ + + + + + 0 +
+ 0 + + + + + +
+ + + 0 + + + +
第12种走法
+ + + 0 + + + +
0 + + + + + + +
+ + + + 0 + + +
+ + + + + + + 0
+ + + + + 0 + +
+ + 0 + + + + +
+ + + + + + 0 +
+ 0 + + + + + +
第13种走法
+ 0 + + + + + +
+ + + + + 0 + +
0 + + + + + + +
+ + + + + + 0 +
+ + + 0 + + + +
+ + + + + + + 0
+ + 0 + + + + +
+ + + + 0 + + +
第14种走法
+ + + + 0 + + +
+ + 0 + + + + +
0 + + + + + + +
+ + + + + + 0 +
+ 0 + + + + + +
+ + + + + + + 0
+ + + + + 0 + +
+ + + 0 + + + +
第15种走法
+ + + + + + + 0
+ + 0 + + + + +
0 + + + + + + +
+ + + + + 0 + +
+ 0 + + + + + +
+ + + + 0 + + +
+ + + + + + 0 +
+ + + 0 + + + +
第16种走法
+ + + 0 + + + +
+ + + + + 0 + +
0 + + + + + + +
+ + + + 0 + + +
+ 0 + + + + + +
+ + + + + + + 0
+ + 0 + + + + +
+ + + + + + 0 +
第17种走法
+ + + + 0 + + +
+ + + + + + 0 +
0 + + + + + + +
+ + + 0 + + + +
+ 0 + + + + + +
+ + + + + + + 0
+ + + + + 0 + +
+ + 0 + + + + +
第18种走法
+ + + + + 0 + +
+ + 0 + + + + +
0 + + + + + + +
+ + + + + + + 0
+ + + 0 + + + +
+ 0 + + + + + +
+ + + + + + 0 +
+ + + + 0 + + +
第19种走法
+ + + + 0 + + +
+ + 0 + + + + +
0 + + + + + + +
+ + + + + 0 + +
+ + + + + + + 0
+ 0 + + + + + +
+ + + 0 + + + +
+ + + + + + 0 +
第20种走法
+ + + + + 0 + +
+ + 0 + + + + +
0 + + + + + + +
+ + + + + + + 0
+ + + + 0 + + +
+ 0 + + + + + +
+ + + 0 + + + +
+ + + + + + 0 +
第21种走法
+ + + 0 + + + +
+ + + + + + + 0
0 + + + + + + +
+ + 0 + + + + +
+ + + + + 0 + +
+ 0 + + + + + +
+ + + + + + 0 +
+ + + + 0 + + +
第22种走法
+ + + + + + + 0
+ + + 0 + + + +
0 + + + + + + +
+ + 0 + + + + +
+ + + + + 0 + +
+ 0 + + + + + +
+ + + + + + 0 +
+ + + + 0 + + +
第23种走法
+ + + 0 + + + +
+ + + + + + + 0
0 + + + + + + +
+ + + + 0 + + +
+ + + + + + 0 +
+ 0 + + + + + +
+ + + + + 0 + +
+ + 0 + + + + +
第24种走法
+ + + 0 + + + +
+ + + + + + 0 +
0 + + + + + + +
+ + + + + + + 0
+ + + + 0 + + +
+ 0 + + + + + +
+ + + + + 0 + +
+ + 0 + + + + +
第25种走法
+ + + + + 0 + +
+ + + 0 + + + +
0 + + + + + + +
+ + + + 0 + + +
+ + + + + + + 0
+ 0 + + + + + +
+ + + + + + 0 +
+ + 0 + + + + +
第26种走法
+ + + + + 0 + +
+ + 0 + + + + +
0 + + + + + + +
+ + + + + + 0 +
+ + + + 0 + + +
+ + + + + + + 0
+ 0 + + + + + +
+ + + 0 + + + +
第27种走法
+ + + + + + 0 +
+ + 0 + + + + +
0 + + + + + + +
+ + + + + 0 + +
+ + + + + + + 0
+ + + + 0 + + +
+ 0 + + + + + +
+ + + 0 + + + +
第28种走法
+ + + + 0 + + +
+ + + + + + 0 +
0 + + + + + + +
+ + 0 + + + + +
+ + + + + + + 0
+ + + + + 0 + +
+ + + 0 + + + +
+ 0 + + + + + +
第29种走法
+ 0 + + + + + +
+ + + + 0 + + +
+ + + + + + 0 +
0 + + + + + + +
+ + 0 + + + + +
+ + + + + + + 0
+ + + + + 0 + +
+ + + 0 + + + +
第30种走法
+ 0 + + + + + +
+ + + + + + + 0
+ + + + + 0 + +
0 + + + + + + +
+ + 0 + + + + +
+ + + + 0 + + +
+ + + + + + 0 +
+ + + 0 + + + +
第31种走法
+ + + + + 0 + +
+ 0 + + + + + +
+ + + + + + 0 +
0 + + + + + + +
+ + 0 + + + + +
+ + + + 0 + + +
+ + + + + + + 0
+ + + 0 + + + +
第32种走法
+ + + + + + 0 +
+ 0 + + + + + +
+ + + 0 + + + +
0 + + + + + + +
+ + + + + + + 0
+ + + + 0 + + +
+ + 0 + + + + +
+ + + + + 0 + +
第33种走法
+ + + + + + + 0
+ 0 + + + + + +
+ + + 0 + + + +
0 + + + + + + +
+ + + + + + 0 +
+ + + + 0 + + +
+ + 0 + + + + +
+ + + + + 0 + +
第34种走法
+ + + + 0 + + +
+ 0 + + + + + +
+ + + + + + + 0
0 + + + + + + +
+ + + 0 + + + +
+ + + + + + 0 +
+ + 0 + + + + +
+ + + + + 0 + +
第35种走法
+ + + + + 0 + +
+ 0 + + + + + +
+ + + + + + 0 +
0 + + + + + + +
+ + + 0 + + + +
+ + + + + + + 0
+ + + + 0 + + +
+ + 0 + + + + +
第36种走法
+ + + + 0 + + +
+ 0 + + + + + +
+ + + + + 0 + +
0 + + + + + + +
+ + + + + + 0 +
+ + + 0 + + + +
+ + + + + + + 0
+ + 0 + + + + +
第37种走法
+ + 0 + + + + +
+ + + + 0 + + +
+ + + + + + 0 +
0 + + + + + + +
+ + + 0 + + + +
+ 0 + + + + + +
+ + + + + + + 0
+ + + + + 0 + +
第38种走法
+ + + + + 0 + +
+ + + 0 + + + +
+ + + + + + 0 +
0 + + + + + + +
+ + + + + + + 0
+ 0 + + + + + +
+ + + + 0 + + +
+ + 0 + + + + +
第39种走法
+ + + + 0 + + +
+ + + + + + + 0
+ + + 0 + + + +
0 + + + + + + +
+ + + + + + 0 +
+ 0 + + + + + +
+ + + + + 0 + +
+ + 0 + + + + +
第40种走法
+ + 0 + + + + +
+ + + + + 0 + +
+ + + + + + + 0
0 + + + + + + +
+ + + + 0 + + +
+ + + + + + 0 +
+ 0 + + + + + +
+ + + 0 + + + +
第41种走法
+ + + + + + 0 +
+ + + + 0 + + +
+ + 0 + + + + +
0 + + + + + + +
+ + + + + 0 + +
+ + + + + + + 0
+ 0 + + + + + +
+ + + 0 + + + +
第42种走法
+ + + + + 0 + +
+ + + 0 + + + +
+ + + + + + 0 +
0 + + + + + + +
+ + 0 + + + + +
+ + + + 0 + + +
+ 0 + + + + + +
+ + + + + + + 0
第43种走法
+ + + + 0 + + +
+ + + + + + + 0
+ + + 0 + + + +
0 + + + + + + +
+ + 0 + + + + +
+ + + + + 0 + +
+ 0 + + + + + +
+ + + + + + 0 +
第44种走法
+ + 0 + + + + +
+ + + + + 0 + +
+ + + 0 + + + +
0 + + + + + + +
+ + + + + + + 0
+ + + + 0 + + +
+ + + + + + 0 +
+ 0 + + + + + +
第45种走法
+ + 0 + + + + +
+ + + + + 0 + +
+ + + + + + + 0
0 + + + + + + +
+ + + 0 + + + +
+ + + + + + 0 +
+ + + + 0 + + +
+ 0 + + + + + +
第46种走法
+ + + + 0 + + +
+ + + + + + 0 +
+ + + 0 + + + +
0 + + + + + + +
+ + 0 + + + + +
+ + + + + + + 0
+ + + + + 0 + +
+ 0 + + + + + +
第47种走法
+ 0 + + + + + +
+ + + + + 0 + +
+ + + + + + + 0
+ + 0 + + + + +
0 + + + + + + +
+ + + 0 + + + +
+ + + + + + 0 +
+ + + + 0 + + +
第48种走法
+ 0 + + + + + +
+ + + + 0 + + +
+ + + + + + 0 +
+ + + 0 + + + +
0 + + + + + + +
+ + + + + + + 0
+ + + + + 0 + +
+ + 0 + + + + +
第49种走法
+ 0 + + + + + +
+ + + + + + 0 +
+ + + + 0 + + +
+ + + + + + + 0
0 + + + + + + +
+ + + 0 + + + +
+ + + + + 0 + +
+ + 0 + + + + +
第50种走法
+ + + + + + 0 +
+ 0 + + + + + +
+ + + + + 0 + +
+ + 0 + + + + +
0 + + + + + + +
+ + + 0 + + + +
+ + + + + + + 0
+ + + + 0 + + +
第51种走法
+ + + + + + + 0
+ 0 + + + + + +
+ + + + 0 + + +
+ + 0 + + + + +
0 + + + + + + +
+ + + + + + 0 +
+ + + 0 + + + +
+ + + + + 0 + +
第52种走法
+ + + 0 + + + +
+ 0 + + + + + +
+ + + + + + + 0
+ + + + + 0 + +
0 + + + + + + +
+ + 0 + + + + +
+ + + + 0 + + +
+ + + + + + 0 +
第53种走法
+ + + 0 + + + +
+ 0 + + + + + +
+ + + + + + 0 +
+ + + + 0 + + +
0 + + + + + + +
+ + + + + + + 0
+ + + + + 0 + +
+ + 0 + + + + +
第54种走法
+ + 0 + + + + +
+ + + + + 0 + +
+ 0 + + + + + +
+ + + + + + 0 +
0 + + + + + + +
+ + + 0 + + + +
+ + + + + + + 0
+ + + + 0 + + +
第55种走法
+ + 0 + + + + +
+ + + + 0 + + +
+ 0 + + + + + +
+ + + + + + + 0
0 + + + + + + +
+ + + + + + 0 +
+ + + 0 + + + +
+ + + + + 0 + +
第56种走法
+ + + + + 0 + +
+ + + + + + + 0
+ 0 + + + + + +
+ + + 0 + + + +
0 + + + + + + +
+ + + + + + 0 +
+ + + + 0 + + +
+ + 0 + + + + +
第57种走法
+ + 0 + + + + +
+ + + + + + + 0
+ + + 0 + + + +
+ + + + + + 0 +
0 + + + + + + +
+ + + + + 0 + +
+ 0 + + + + + +
+ + + + 0 + + +
第58种走法
+ + 0 + + + + +
+ + + + 0 + + +
+ + + + + + + 0
+ + + 0 + + + +
0 + + + + + + +
+ + + + + + 0 +
+ 0 + + + + + +
+ + + + + 0 + +
第59种走法
+ + + + + 0 + +
+ + 0 + + + + +
+ + + + + + 0 +
+ + + 0 + + + +
0 + + + + + + +
+ + + + + + + 0
+ 0 + + + + + +
+ + + + 0 + + +
第60种走法
+ + + + + 0 + +
+ + 0 + + + + +
+ + + + 0 + + +
+ + + + + + 0 +
0 + + + + + + +
+ + + 0 + + + +
+ 0 + + + + + +
+ + + + + + + 0
第61种走法
+ + + + + 0 + +
+ + 0 + + + + +
+ + + + 0 + + +
+ + + + + + + 0
0 + + + + + + +
+ + + 0 + + + +
+ 0 + + + + + +
+ + + + + + 0 +
第62种走法
+ + + 0 + + + +
+ + + + + + + 0
+ + + + 0 + + +
+ + 0 + + + + +
0 + + + + + + +
+ + + + + + 0 +
+ 0 + + + + + +
+ + + + + 0 + +
第63种走法
+ + + 0 + + + +
+ + + + + + 0 +
+ + + + 0 + + +
+ + 0 + + + + +
0 + + + + + + +
+ + + + + 0 + +
+ + + + + + + 0
+ 0 + + + + + +
第64种走法
+ + + 0 + + + +
+ + + + + 0 + +
+ + + + + + + 0
+ + 0 + + + + +
0 + + + + + + +
+ + + + + + 0 +
+ + + + 0 + + +
+ 0 + + + + + +
第65种走法
+ 0 + + + + + +
+ + + 0 + + + +
+ + + + + 0 + +
+ + + + + + + 0
+ + 0 + + + + +
0 + + + + + + +
+ + + + + + 0 +
+ + + + 0 + + +
第66种走法
+ + + 0 + + + +
+ 0 + + + + + +
+ + + + 0 + + +
+ + + + + + + 0
+ + + + + 0 + +
0 + + + + + + +
+ + 0 + + + + +
+ + + + + + 0 +
第67种走法
+ + + 0 + + + +
+ 0 + + + + + +
+ + + + + + + 0
+ + + + 0 + + +
+ + + + + + 0 +
0 + + + + + + +
+ + 0 + + + + +
+ + + + + 0 + +
第68种走法
+ + 0 + + + + +
+ + + + + + 0 +
+ 0 + + + + + +
+ + + + + + + 0
+ + + + 0 + + +
0 + + + + + + +
+ + + 0 + + + +
+ + + + + 0 + +
第69种走法
+ + 0 + + + + +
+ + + + + 0 + +
+ 0 + + + + + +
+ + + + 0 + + +
+ + + + + + + 0
0 + + + + + + +
+ + + + + + 0 +
+ + + 0 + + + +
第70种走法
+ + 0 + + + + +
+ + + + + 0 + +
+ 0 + + + + + +
+ + + + + + 0 +
+ + + + 0 + + +
0 + + + + + + +
+ + + + + + + 0
+ + + 0 + + + +
第71种走法
+ + + + 0 + + +
+ + + + + + 0 +
+ 0 + + + + + +
+ + + + + 0 + +
+ + 0 + + + + +
0 + + + + + + +
+ + + 0 + + + +
+ + + + + + + 0
第72种走法
+ + + + 0 + + +
+ + + + + + 0 +
+ 0 + + + + + +
+ + + + + 0 + +
+ + 0 + + + + +
0 + + + + + + +
+ + + + + + + 0
+ + + 0 + + + +
第73种走法
+ + + + + + 0 +
+ + + 0 + + + +
+ 0 + + + + + +
+ + + + 0 + + +
+ + + + + + + 0
0 + + + + + + +
+ + 0 + + + + +
+ + + + + 0 + +
第74种走法
+ + + + + + 0 +
+ + + 0 + + + +
+ 0 + + + + + +
+ + + + + + + 0
+ + + + + 0 + +
0 + + + + + + +
+ + 0 + + + + +
+ + + + 0 + + +
第75种走法
+ + + + 0 + + +
+ + + + + + 0 +
+ 0 + + + + + +
+ + + 0 + + + +
+ + + + + + + 0
0 + + + + + + +
+ + 0 + + + + +
+ + + + + 0 + +
第76种走法
+ + 0 + + + + +
+ + + + + 0 + +
+ + + + + + + 0
+ 0 + + + + + +
+ + + 0 + + + +
0 + + + + + + +
+ + + + + + 0 +
+ + + + 0 + + +
第77种走法
+ + + + + + 0 +
+ + 0 + + + + +
+ + + + + + + 0
+ 0 + + + + + +
+ + + + 0 + + +
0 + + + + + + +
+ + + + + 0 + +
+ + + 0 + + + +
第78种走法
+ + + 0 + + + +
+ + + + + + 0 +
+ + + + 0 + + +
+ 0 + + + + + +
+ + + + + 0 + +
0 + + + + + + +
+ + 0 + + + + +
+ + + + + + + 0
第79种走法
+ + + 0 + + + +
+ + + + + 0 + +
+ + + + + + + 0
+ 0 + + + + + +
+ + + + + + 0 +
0 + + + + + + +
+ + 0 + + + + +
+ + + + 0 + + +
第80种走法
+ + + + 0 + + +
+ + 0 + + + + +
+ + + + + + + 0
+ + + 0 + + + +
+ + + + + + 0 +
0 + + + + + + +
+ + + + + 0 + +
+ 0 + + + + + +
第81种走法
+ 0 + + + + + +
+ + + + + + 0 +
+ + 0 + + + + +
+ + + + + 0 + +
+ + + + + + + 0
+ + + + 0 + + +
0 + + + + + + +
+ + + 0 + + + +
第82种走法
+ + + 0 + + + +
+ 0 + + + + + +
+ + + + + + 0 +
+ + 0 + + + + +
+ + + + + 0 + +
+ + + + + + + 0
0 + + + + + + +
+ + + + 0 + + +
第83种走法
+ + + + 0 + + +
+ 0 + + + + + +
+ + + 0 + + + +
+ + + + + 0 + +
+ + + + + + + 0
+ + 0 + + + + +
0 + + + + + + +
+ + + + + + 0 +
第84种走法
+ + 0 + + + + +
+ + + + + + 0 +
+ 0 + + + + + +
+ + + + + + + 0
+ + + + + 0 + +
+ + + 0 + + + +
0 + + + + + + +
+ + + + 0 + + +
第85种走法
+ + + + + 0 + +
+ + + 0 + + + +
+ 0 + + + + + +
+ + + + + + + 0
+ + + + 0 + + +
+ + + + + + 0 +
0 + + + + + + +
+ + 0 + + + + +
第86种走法
+ + + + + 0 + +
+ + 0 + + + + +
+ + + + + + 0 +
+ 0 + + + + + +
+ + + 0 + + + +
+ + + + + + + 0
0 + + + + + + +
+ + + + 0 + + +
第87种走法
+ + + + + 0 + +
+ + 0 + + + + +
+ + + + + + 0 +
+ 0 + + + + + +
+ + + + + + + 0
+ + + + 0 + + +
0 + + + + + + +
+ + + 0 + + + +
第88种走法
+ + + 0 + + + +
+ + + + + + 0 +
+ + 0 + + + + +
+ + + + + + + 0
+ 0 + + + + + +
+ + + + 0 + + +
0 + + + + + + +
+ + + + + 0 + +
第89种走法
+ + + 0 + + + +
+ 0 + + + + + +
+ + + + + + 0 +
+ + 0 + + + + +
+ + + + + 0 + +
+ + + + + + + 0
+ + + + 0 + + +
0 + + + + + + +
第90种走法
+ + + + 0 + + +
+ 0 + + + + + +
+ + + 0 + + + +
+ + + + + + 0 +
+ + 0 + + + + +
+ + + + + + + 0
+ + + + + 0 + +
0 + + + + + + +
第91种走法
+ + 0 + + + + +
+ + + + 0 + + +
+ 0 + + + + + +
+ + + + + + + 0
+ + + + + 0 + +
+ + + 0 + + + +
+ + + + + + 0 +
0 + + + + + + +
第92种走法
+ + 0 + + + + +
+ + + + + 0 + +
+ + + 0 + + + +
+ 0 + + + + + +
+ + + + + + + 0
+ + + + 0 + + +
+ + + + + + 0 +
0 + + + + + + +
8皇后问题有92种摆放方法。