8皇后问题

2016-07-19  本文已影响78人  jacky123

前言

八皇后问题是一个古老而著名的问题,是回溯算法的典型例题。该问题是十九世纪著名的数学家高斯1850年提出:在8X8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。

分析

  1. 我们可以逐行或者逐列来进行可行摆放方案的遍历,每一行(或列)遍历出一个符合条件的位置,接着就到下一行或列遍历下一个棋子的合适位置,这种遍历思路可以保证我们遍历过程中有一个条件是绝对符合的——就是下一个棋子的摆放位置与前面的棋子不在同一行(或列)。
    接下来,我们只要判断当前位置是否还符合其他条件,如果符合,就遍历下一行(或列)所有位置,看看是否继续有符合条件的位置,以此类推,如果某一个行(或列)的所有位置都不合适,就返回上一行(或列)继续该行(或列)的其他位置遍历,当我们顺利遍历到最后一行(或列),且有符合条件的位置时,就是一个可行的8皇后摆放方案,累加一次八皇后可行方案的个数,然后继续遍历该行其他位置是否有合适的,如果没有,则返回上一行,遍历该行其他位置,依此下去。这样一个过程下来,我们就可以得出所有符合条件的8皇后摆放方案了。这是一个深度优先遍历的过程,同时也是经典的回溯递归思路

  2. 把当前列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种摆放方法。

参考资料

上一篇下一篇

猜你喜欢

热点阅读