栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

8皇后回溯算法递归方案探究及JAVA实现

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

8皇后回溯算法递归方案探究及JAVA实现

8皇后问题简介

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

第一种方案

算法思考,初步思路:

(1) 构建二维int或者short型数组,在内存中模拟棋盘;

(2) chess[r][c]=0表示:r行c列没有皇后,chess[r][c]=1表示:r行c列位置有一个皇后;

(3) 从第一行第一列开始,逐行摆放皇后,每行一个皇后即可。

摆放后,立即调用一个验证函数(传递整个棋盘的数据),验证其是否安全。若安全,则摆放下一个;若不安全,则尝试摆放这一行的下一个位置,直至摆到棋盘边界。

当这一行所有位置都无法保证皇后安全时,需要回退到上一行,清除上一行的摆放记录,并且在上一行尝试摆放下一位置的皇后(回溯算法的核心)。

当摆放到最后一行,并且调用验证函数确定安全后,累积数自增1,表示有一个解成功算出。

验证函数中,需要扫描当前摆放皇后的左上方、正上方、右上方是否有其他皇后。若有,则表示存在危险;若没有,则表示安全。在验证过程中,不需要考虑当前位置棋盘下方的安全性,因为下面的皇后还没有摆放。

下面,我们使用上面的思路初步实现8皇后的问题解法,并且将所有解法打印出来,供我们验证正确性。

package com.test.queens;

import java.util.Date;


public class EightQueen {
    private static final short N = 8;        // 使用常量来定义,方便之后解N皇后问题
    private static int count = 0;            // 方案计数器

    public static void main(String[] args) {
        Date begin = new Date();
        //初始化棋盘,全部置0
        short[][] chess = new short[N][N];
        for (int i = 0; i < N; i++) {
            for (int j = 0; j < N; j++) {
                chess[i][j] = 0;
            }
        }

        putQueenAtRow(chess, 0);

        Date end = new Date();
        System.out.println("解决 " + N + " 皇后问题,用时:" + String.valueOf(end.getTime() - begin.getTime()) + " 毫秒,方案共 " + count + " 种。");
    }

    private static void putQueenAtRow(short[][] chess, int row) {
        
        if (row == N) {
            count++;
            System.out.println("第 " + count + " 种解:");
            for (int i = 0; i < N; i++) {
                for (int j = 0; j < N; j++) {
                    System.out.print(chess[i][j] + " ");
                }
                System.out.println();
            }

            return;
        }

        
        short[][] chessTemp = chess.clone();
        for (int i = 0; i < N; i++) { // 列遍历
            // 摆放这一行的皇后之前,要清掉所有这一行摆放的记录,防止污染棋盘。
            for (int j = 0; j < N; j++) { // 列遍历
                chessTemp[row][j] = 0;
            }

            // 向这一行的每一个位置尝试放置皇后,然后检测该位置是否安全。
            chessTemp[row][i] = 1;
            if (isSafe(chessTemp, row, i)) {
                putQueenAtRow(chessTemp, row + 1);
            } else {
                chessTemp[row][i] = 0;
            }
        }
    }

    private static boolean isSafe(short[][] chess, int row, int col) {
        // 判断正上方、左上方、右上方是否安全
        int step = 1;
        while (row - step >= 0) {
            // 正上方是否安全
            if (chess[row - step][col] == 1) {
                return false;
            }

            // 左上方是否安全
            if ((col - step >= 0) && (chess[row - step][col - step] == 1)) {
                return false;
            }

            // 右上方是否安全
            if ((col + step < N) && (chess[row - step][col + step] == 1)) {
                return false;
            }

            step++;
        }

        return true;
    }
}

运行结果如下所示:

第 1 种解:
1 0 0 0 0 0 0 0 
0 0 0 0 1 0 0 0 
0 0 0 0 0 0 0 1 
0 0 0 0 0 1 0 0 
0 0 1 0 0 0 0 0 
0 0 0 0 0 0 1 0 
0 1 0 0 0 0 0 0 
0 0 0 1 0 0 0 0 
第 2 种解:
1 0 0 0 0 0 0 0 
0 0 0 0 0 1 0 0 
0 0 0 0 0 0 0 1 
0 0 1 0 0 0 0 0 
0 0 0 0 0 0 1 0 
0 0 0 1 0 0 0 0 
0 1 0 0 0 0 0 0 
0 0 0 0 1 0 0 0 
第 3 种解:
1 0 0 0 0 0 0 0 
0 0 0 0 0 0 1 0 
0 0 0 1 0 0 0 0 
0 0 0 0 0 1 0 0 
0 0 0 0 0 0 0 1 
0 1 0 0 0 0 0 0 
0 0 0 0 1 0 0 0 
0 0 1 0 0 0 0 0 
第 4 种解:
1 0 0 0 0 0 0 0 
0 0 0 0 0 0 1 0 
0 0 0 0 1 0 0 0 
0 0 0 0 0 0 0 1 
0 1 0 0 0 0 0 0 
0 0 0 1 0 0 0 0 
0 0 0 0 0 1 0 0 
0 0 1 0 0 0 0 0 
第 5 种解:
0 1 0 0 0 0 0 0 
0 0 0 1 0 0 0 0 
0 0 0 0 0 1 0 0 
0 0 0 0 0 0 0 1 
0 0 1 0 0 0 0 0 
1 0 0 0 0 0 0 0 
0 0 0 0 0 0 1 0 
0 0 0 0 1 0 0 0 
第 6 种解:
0 1 0 0 0 0 0 0 
0 0 0 0 1 0 0 0 
0 0 0 0 0 0 1 0 
1 0 0 0 0 0 0 0 
0 0 1 0 0 0 0 0 
0 0 0 0 0 0 0 1 
0 0 0 0 0 1 0 0 
0 0 0 1 0 0 0 0 
第 7 种解:
0 1 0 0 0 0 0 0 
0 0 0 0 1 0 0 0 
0 0 0 0 0 0 1 0 
0 0 0 1 0 0 0 0 
1 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 1 
0 0 0 0 0 1 0 0 
0 0 1 0 0 0 0 0 
第 8 种解:
0 1 0 0 0 0 0 0 
0 0 0 0 0 1 0 0 
1 0 0 0 0 0 0 0 
0 0 0 0 0 0 1 0 
0 0 0 1 0 0 0 0 
0 0 0 0 0 0 0 1 
0 0 1 0 0 0 0 0 
0 0 0 0 1 0 0 0 
第 9 种解:
0 1 0 0 0 0 0 0 
0 0 0 0 0 1 0 0 
0 0 0 0 0 0 0 1 
0 0 1 0 0 0 0 0 
1 0 0 0 0 0 0 0 
0 0 0 1 0 0 0 0 
0 0 0 0 0 0 1 0 
0 0 0 0 1 0 0 0 
第 10 种解:
0 1 0 0 0 0 0 0 
0 0 0 0 0 0 1 0 
0 0 1 0 0 0 0 0 
0 0 0 0 0 1 0 0 
0 0 0 0 0 0 0 1 
0 0 0 0 1 0 0 0 
1 0 0 0 0 0 0 0 
0 0 0 1 0 0 0 0 
第 11 种解:
0 1 0 0 0 0 0 0 
0 0 0 0 0 0 1 0 
0 0 0 0 1 0 0 0 
0 0 0 0 0 0 0 1 
1 0 0 0 0 0 0 0 
0 0 0 1 0 0 0 0 
0 0 0 0 0 1 0 0 
0 0 1 0 0 0 0 0 
第 12 种解:
0 1 0 0 0 0 0 0 
0 0 0 0 0 0 0 1 
0 0 0 0 0 1 0 0 
1 0 0 0 0 0 0 0 
0 0 1 0 0 0 0 0 
0 0 0 0 1 0 0 0 
0 0 0 0 0 0 1 0 
0 0 0 1 0 0 0 0 
第 13 种解:
0 0 1 0 0 0 0 0 
1 0 0 0 0 0 0 0 
0 0 0 0 0 0 1 0 
0 0 0 0 1 0 0 0 
0 0 0 0 0 0 0 1 
0 1 0 0 0 0 0 0 
0 0 0 1 0 0 0 0 
0 0 0 0 0 1 0 0 
第 14 种解:
0 0 1 0 0 0 0 0 
0 0 0 0 1 0 0 0 
0 1 0 0 0 0 0 0 
0 0 0 0 0 0 0 1 
1 0 0 0 0 0 0 0 
0 0 0 0 0 0 1 0 
0 0 0 1 0 0 0 0 
0 0 0 0 0 1 0 0 
第 15 种解:
0 0 1 0 0 0 0 0 
0 0 0 0 1 0 0 0 
0 1 0 0 0 0 0 0 
0 0 0 0 0 0 0 1 
0 0 0 0 0 1 0 0 
0 0 0 1 0 0 0 0 
0 0 0 0 0 0 1 0 
1 0 0 0 0 0 0 0 
第 16 种解:
0 0 1 0 0 0 0 0 
0 0 0 0 1 0 0 0 
0 0 0 0 0 0 1 0 
1 0 0 0 0 0 0 0 
0 0 0 1 0 0 0 0 
0 1 0 0 0 0 0 0 
0 0 0 0 0 0 0 1 
0 0 0 0 0 1 0 0 
第 17 种解:
0 0 1 0 0 0 0 0 
0 0 0 0 1 0 0 0 
0 0 0 0 0 0 0 1 
0 0 0 1 0 0 0 0 
1 0 0 0 0 0 0 0 
0 0 0 0 0 0 1 0 
0 1 0 0 0 0 0 0 
0 0 0 0 0 1 0 0 
第 18 种解:
0 0 1 0 0 0 0 0 
0 0 0 0 0 1 0 0 
0 1 0 0 0 0 0 0 
0 0 0 0 1 0 0 0 
0 0 0 0 0 0 0 1 
1 0 0 0 0 0 0 0 
0 0 0 0 0 0 1 0 
0 0 0 1 0 0 0 0 
第 19 种解:
0 0 1 0 0 0 0 0 
0 0 0 0 0 1 0 0 
0 1 0 0 0 0 0 0 
0 0 0 0 0 0 1 0 
1 0 0 0 0 0 0 0 
0 0 0 1 0 0 0 0 
0 0 0 0 0 0 0 1 
0 0 0 0 1 0 0 0 
第 20 种解:
0 0 1 0 0 0 0 0 
0 0 0 0 0 1 0 0 
0 1 0 0 0 0 0 0 
0 0 0 0 0 0 1 0 
0 0 0 0 1 0 0 0 
1 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 1 
0 0 0 1 0 0 0 0 
第 21 种解:
0 0 1 0 0 0 0 0 
0 0 0 0 0 1 0 0 
0 0 0 1 0 0 0 0 
1 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 1 
0 0 0 0 1 0 0 0 
0 0 0 0 0 0 1 0 
0 1 0 0 0 0 0 0 
第 22 种解:
0 0 1 0 0 0 0 0 
0 0 0 0 0 1 0 0 
0 0 0 1 0 0 0 0 
0 1 0 0 0 0 0 0 
0 0 0 0 0 0 0 1 
0 0 0 0 1 0 0 0 
0 0 0 0 0 0 1 0 
1 0 0 0 0 0 0 0 
第 23 种解:
0 0 1 0 0 0 0 0 
0 0 0 0 0 1 0 0 
0 0 0 0 0 0 0 1 
1 0 0 0 0 0 0 0 
0 0 0 1 0 0 0 0 
0 0 0 0 0 0 1 0 
0 0 0 0 1 0 0 0 
0 1 0 0 0 0 0 0 
第 24 种解:
0 0 1 0 0 0 0 0 
0 0 0 0 0 1 0 0 
0 0 0 0 0 0 0 1 
1 0 0 0 0 0 0 0 
0 0 0 0 1 0 0 0 
0 0 0 0 0 0 1 0 
0 1 0 0 0 0 0 0 
0 0 0 1 0 0 0 0 
第 25 种解:
0 0 1 0 0 0 0 0 
0 0 0 0 0 1 0 0 
0 0 0 0 0 0 0 1 
0 1 0 0 0 0 0 0 
0 0 0 1 0 0 0 0 
1 0 0 0 0 0 0 0 
0 0 0 0 0 0 1 0 
0 0 0 0 1 0 0 0 
第 26 种解:
0 0 1 0 0 0 0 0 
0 0 0 0 0 0 1 0 
0 1 0 0 0 0 0 0 
0 0 0 0 0 0 0 1 
0 0 0 0 1 0 0 0 
1 0 0 0 0 0 0 0 
0 0 0 1 0 0 0 0 
0 0 0 0 0 1 0 0 
第 27 种解:
0 0 1 0 0 0 0 0 
0 0 0 0 0 0 1 0 
0 1 0 0 0 0 0 0 
0 0 0 0 0 0 0 1 
0 0 0 0 0 1 0 0 
0 0 0 1 0 0 0 0 
1 0 0 0 0 0 0 0 
0 0 0 0 1 0 0 0 
第 28 种解:
0 0 1 0 0 0 0 0 
0 0 0 0 0 0 0 1 
0 0 0 1 0 0 0 0 
0 0 0 0 0 0 1 0 
1 0 0 0 0 0 0 0 
0 0 0 0 0 1 0 0 
0 1 0 0 0 0 0 0 
0 0 0 0 1 0 0 0 
第 29 种解:
0 0 0 1 0 0 0 0 
1 0 0 0 0 0 0 0 
0 0 0 0 1 0 0 0 
0 0 0 0 0 0 0 1 
0 1 0 0 0 0 0 0 
0 0 0 0 0 0 1 0 
0 0 1 0 0 0 0 0 
0 0 0 0 0 1 0 0 
第 30 种解:
0 0 0 1 0 0 0 0 
1 0 0 0 0 0 0 0 
0 0 0 0 1 0 0 0 
0 0 0 0 0 0 0 1 
0 0 0 0 0 1 0 0 
0 0 1 0 0 0 0 0 
0 0 0 0 0 0 1 0 
0 1 0 0 0 0 0 0 
第 31 种解:
0 0 0 1 0 0 0 0 
0 1 0 0 0 0 0 0 
0 0 0 0 1 0 0 0 
0 0 0 0 0 0 0 1 
0 0 0 0 0 1 0 0 
1 0 0 0 0 0 0 0 
0 0 1 0 0 0 0 0 
0 0 0 0 0 0 1 0 
第 32 种解:
0 0 0 1 0 0 0 0 
0 1 0 0 0 0 0 0 
0 0 0 0 0 0 1 0 
0 0 1 0 0 0 0 0 
0 0 0 0 0 1 0 0 
0 0 0 0 0 0 0 1 
1 0 0 0 0 0 0 0 
0 0 0 0 1 0 0 0 
第 33 种解:
0 0 0 1 0 0 0 0 
0 1 0 0 0 0 0 0 
0 0 0 0 0 0 1 0 
0 0 1 0 0 0 0 0 
0 0 0 0 0 1 0 0 
0 0 0 0 0 0 0 1 
0 0 0 0 1 0 0 0 
1 0 0 0 0 0 0 0 
第 34 种解:
0 0 0 1 0 0 0 0 
0 1 0 0 0 0 0 0 
0 0 0 0 0 0 1 0 
0 0 0 0 1 0 0 0 
1 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 1 
0 0 0 0 0 1 0 0 
0 0 1 0 0 0 0 0 
第 35 种解:
0 0 0 1 0 0 0 0 
0 1 0 0 0 0 0 0 
0 0 0 0 0 0 0 1 
0 0 0 0 1 0 0 0 
0 0 0 0 0 0 1 0 
1 0 0 0 0 0 0 0 
0 0 1 0 0 0 0 0 
0 0 0 0 0 1 0 0 
第 36 种解:
0 0 0 1 0 0 0 0 
0 1 0 0 0 0 0 0 
0 0 0 0 0 0 0 1 
0 0 0 0 0 1 0 0 
1 0 0 0 0 0 0 0 
0 0 1 0 0 0 0 0 
0 0 0 0 1 0 0 0 
0 0 0 0 0 0 1 0 
第 37 种解:
0 0 0 1 0 0 0 0 
0 0 0 0 0 1 0 0 
1 0 0 0 0 0 0 0 
0 0 0 0 1 0 0 0 
0 1 0 0 0 0 0 0 
0 0 0 0 0 0 0 1 
0 0 1 0 0 0 0 0 
0 0 0 0 0 0 1 0 
第 38 种解:
0 0 0 1 0 0 0 0 
0 0 0 0 0 1 0 0 
0 0 0 0 0 0 0 1 
0 1 0 0 0 0 0 0 
0 0 0 0 0 0 1 0 
1 0 0 0 0 0 0 0 
0 0 1 0 0 0 0 0 
0 0 0 0 1 0 0 0 
第 39 种解:
0 0 0 1 0 0 0 0 
0 0 0 0 0 1 0 0 
0 0 0 0 0 0 0 1 
0 0 1 0 0 0 0 0 
1 0 0 0 0 0 0 0 
0 0 0 0 0 0 1 0 
0 0 0 0 1 0 0 0 
0 1 0 0 0 0 0 0 
第 40 种解:
0 0 0 1 0 0 0 0 
0 0 0 0 0 0 1 0 
1 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 1 
0 0 0 0 1 0 0 0 
0 1 0 0 0 0 0 0 
0 0 0 0 0 1 0 0 
0 0 1 0 0 0 0 0 
第 41 种解:
0 0 0 1 0 0 0 0 
0 0 0 0 0 0 1 0 
0 0 1 0 0 0 0 0 
0 0 0 0 0 0 0 1 
0 1 0 0 0 0 0 0 
0 0 0 0 1 0 0 0 
1 0 0 0 0 0 0 0 
0 0 0 0 0 1 0 0 
第 42 种解:
0 0 0 1 0 0 0 0 
0 0 0 0 0 0 1 0 
0 0 0 0 1 0 0 0 
0 1 0 0 0 0 0 0 
0 0 0 0 0 1 0 0 
1 0 0 0 0 0 0 0 
0 0 1 0 0 0 0 0 
0 0 0 0 0 0 0 1 
第 43 种解:
0 0 0 1 0 0 0 0 
0 0 0 0 0 0 1 0 
0 0 0 0 1 0 0 0 
0 0 1 0 0 0 0 0 
1 0 0 0 0 0 0 0 
0 0 0 0 0 1 0 0 
0 0 0 0 0 0 0 1 
0 1 0 0 0 0 0 0 
第 44 种解:
0 0 0 1 0 0 0 0 
0 0 0 0 0 0 0 1 
1 0 0 0 0 0 0 0 
0 0 1 0 0 0 0 0 
0 0 0 0 0 1 0 0 
0 1 0 0 0 0 0 0 
0 0 0 0 0 0 1 0 
0 0 0 0 1 0 0 0 
第 45 种解:
0 0 0 1 0 0 0 0 
0 0 0 0 0 0 0 1 
1 0 0 0 0 0 0 0 
0 0 0 0 1 0 0 0 
0 0 0 0 0 0 1 0 
0 1 0 0 0 0 0 0 
0 0 0 0 0 1 0 0 
0 0 1 0 0 0 0 0 
第 46 种解:
0 0 0 1 0 0 0 0 
0 0 0 0 0 0 0 1 
0 0 0 0 1 0 0 0 
0 0 1 0 0 0 0 0 
1 0 0 0 0 0 0 0 
0 0 0 0 0 0 1 0 
0 1 0 0 0 0 0 0 
0 0 0 0 0 1 0 0 
第 47 种解:
0 0 0 0 1 0 0 0 
1 0 0 0 0 0 0 0 
0 0 0 1 0 0 0 0 
0 0 0 0 0 1 0 0 
0 0 0 0 0 0 0 1 
0 1 0 0 0 0 0 0 
0 0 0 0 0 0 1 0 
0 0 1 0 0 0 0 0 
第 48 种解:
0 0 0 0 1 0 0 0 
1 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 1 
0 0 0 1 0 0 0 0 
0 1 0 0 0 0 0 0 
0 0 0 0 0 0 1 0 
0 0 1 0 0 0 0 0 
0 0 0 0 0 1 0 0 
第 49 种解:
0 0 0 0 1 0 0 0 
1 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 1 
0 0 0 0 0 1 0 0 
0 0 1 0 0 0 0 0 
0 0 0 0 0 0 1 0 
0 1 0 0 0 0 0 0 
0 0 0 1 0 0 0 0 
第 50 种解:
0 0 0 0 1 0 0 0 
0 1 0 0 0 0 0 0 
0 0 0 1 0 0 0 0 
0 0 0 0 0 1 0 0 
0 0 0 0 0 0 0 1 
0 0 1 0 0 0 0 0 
1 0 0 0 0 0 0 0 
0 0 0 0 0 0 1 0 
第 51 种解:
0 0 0 0 1 0 0 0 
0 1 0 0 0 0 0 0 
0 0 0 1 0 0 0 0 
0 0 0 0 0 0 1 0 
0 0 1 0 0 0 0 0 
0 0 0 0 0 0 0 1 
0 0 0 0 0 1 0 0 
1 0 0 0 0 0 0 0 
第 52 种解:
0 0 0 0 1 0 0 0 
0 1 0 0 0 0 0 0 
0 0 0 0 0 1 0 0 
1 0 0 0 0 0 0 0 
0 0 0 0 0 0 1 0 
0 0 0 1 0 0 0 0 
0 0 0 0 0 0 0 1 
0 0 1 0 0 0 0 0 
第 53 种解:
0 0 0 0 1 0 0 0 
0 1 0 0 0 0 0 0 
0 0 0 0 0 0 0 1 
1 0 0 0 0 0 0 0 
0 0 0 1 0 0 0 0 
0 0 0 0 0 0 1 0 
0 0 1 0 0 0 0 0 
0 0 0 0 0 1 0 0 
第 54 种解:
0 0 0 0 1 0 0 0 
0 0 1 0 0 0 0 0 
1 0 0 0 0 0 0 0 
0 0 0 0 0 1 0 0 
0 0 0 0 0 0 0 1 
0 1 0 0 0 0 0 0 
0 0 0 1 0 0 0 0 
0 0 0 0 0 0 1 0 
第 55 种解:
0 0 0 0 1 0 0 0 
0 0 1 0 0 0 0 0 
1 0 0 0 0 0 0 0 
0 0 0 0 0 0 1 0 
0 1 0 0 0 0 0 0 
0 0 0 0 0 0 0 1 
0 0 0 0 0 1 0 0 
0 0 0 1 0 0 0 0 
第 56 种解:
0 0 0 0 1 0 0 0 
0 0 1 0 0 0 0 0 
0 0 0 0 0 0 0 1 
0 0 0 1 0 0 0 0 
0 0 0 0 0 0 1 0 
1 0 0 0 0 0 0 0 
0 0 0 0 0 1 0 0 
0 1 0 0 0 0 0 0 
第 57 种解:
0 0 0 0 1 0 0 0 
0 0 0 0 0 0 1 0 
1 0 0 0 0 0 0 0 
0 0 1 0 0 0 0 0 
0 0 0 0 0 0 0 1 
0 0 0 0 0 1 0 0 
0 0 0 1 0 0 0 0 
0 1 0 0 0 0 0 0 
第 58 种解:
0 0 0 0 1 0 0 0 
0 0 0 0 0 0 1 0 
1 0 0 0 0 0 0 0 
0 0 0 1 0 0 0 0 
0 1 0 0 0 0 0 0 
0 0 0 0 0 0 0 1 
0 0 0 0 0 1 0 0 
0 0 1 0 0 0 0 0 
第 59 种解:
0 0 0 0 1 0 0 0 
0 0 0 0 0 0 1 0 
0 1 0 0 0 0 0 0 
0 0 0 1 0 0 0 0 
0 0 0 0 0 0 0 1 
1 0 0 0 0 0 0 0 
0 0 1 0 0 0 0 0 
0 0 0 0 0 1 0 0 
第 60 种解:
0 0 0 0 1 0 0 0 
0 0 0 0 0 0 1 0 
0 1 0 0 0 0 0 0 
0 0 0 0 0 1 0 0 
0 0 1 0 0 0 0 0 
1 0 0 0 0 0 0 0 
0 0 0 1 0 0 0 0 
0 0 0 0 0 0 0 1 
第 61 种解:
0 0 0 0 1 0 0 0 
0 0 0 0 0 0 1 0 
0 1 0 0 0 0 0 0 
0 0 0 0 0 1 0 0 
0 0 1 0 0 0 0 0 
1 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 1 
0 0 0 1 0 0 0 0 
第 62 种解:
0 0 0 0 1 0 0 0 
0 0 0 0 0 0 1 0 
0 0 0 1 0 0 0 0 
1 0 0 0 0 0 0 0 
0 0 1 0 0 0 0 0 
0 0 0 0 0 0 0 1 
0 0 0 0 0 1 0 0 
0 1 0 0 0 0 0 0 
第 63 种解:
0 0 0 0 1 0 0 0 
0 0 0 0 0 0 0 1 
0 0 0 1 0 0 0 0 
1 0 0 0 0 0 0 0 
0 0 1 0 0 0 0 0 
0 0 0 0 0 1 0 0 
0 1 0 0 0 0 0 0 
0 0 0 0 0 0 1 0 
第 64 种解:
0 0 0 0 1 0 0 0 
0 0 0 0 0 0 0 1 
0 0 0 1 0 0 0 0 
1 0 0 0 0 0 0 0 
0 0 0 0 0 0 1 0 
0 1 0 0 0 0 0 0 
0 0 0 0 0 1 0 0 
0 0 1 0 0 0 0 0 
第 65 种解:
0 0 0 0 0 1 0 0 
1 0 0 0 0 0 0 0 
0 0 0 0 1 0 0 0 
0 1 0 0 0 0 0 0 
0 0 0 0 0 0 0 1 
0 0 1 0 0 0 0 0 
0 0 0 0 0 0 1 0 
0 0 0 1 0 0 0 0 
第 66 种解:
0 0 0 0 0 1 0 0 
0 1 0 0 0 0 0 0 
0 0 0 0 0 0 1 0 
1 0 0 0 0 0 0 0 
0 0 1 0 0 0 0 0 
0 0 0 0 1 0 0 0 
0 0 0 0 0 0 0 1 
0 0 0 1 0 0 0 0 
第 67 种解:
0 0 0 0 0 1 0 0 
0 1 0 0 0 0 0 0 
0 0 0 0 0 0 1 0 
1 0 0 0 0 0 0 0 
0 0 0 1 0 0 0 0 
0 0 0 0 0 0 0 1 
0 0 0 0 1 0 0 0 
0 0 1 0 0 0 0 0 
第 68 种解:
0 0 0 0 0 1 0 0 
0 0 1 0 0 0 0 0 
1 0 0 0 0 0 0 0 
0 0 0 0 0 0 1 0 
0 0 0 0 1 0 0 0 
0 0 0 0 0 0 0 1 
0 1 0 0 0 0 0 0 
0 0 0 1 0 0 0 0 
第 69 种解:
0 0 0 0 0 1 0 0 
0 0 1 0 0 0 0 0 
1 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 1 
0 0 0 1 0 0 0 0 
0 1 0 0 0 0 0 0 
0 0 0 0 0 0 1 0 
0 0 0 0 1 0 0 0 
第 70 种解:
0 0 0 0 0 1 0 0 
0 0 1 0 0 0 0 0 
1 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 1 
0 0 0 0 1 0 0 0 
0 1 0 0 0 0 0 0 
0 0 0 1 0 0 0 0 
0 0 0 0 0 0 1 0 
第 71 种解:
0 0 0 0 0 1 0 0 
0 0 1 0 0 0 0 0 
0 0 0 0 1 0 0 0 
0 0 0 0 0 0 1 0 
1 0 0 0 0 0 0 0 
0 0 0 1 0 0 0 0 
0 1 0 0 0 0 0 0 
0 0 0 0 0 0 0 1 
第 72 种解:
0 0 0 0 0 1 0 0 
0 0 1 0 0 0 0 0 
0 0 0 0 1 0 0 0 
0 0 0 0 0 0 0 1 
1 0 0 0 0 0 0 0 
0 0 0 1 0 0 0 0 
0 1 0 0 0 0 0 0 
0 0 0 0 0 0 1 0 
第 73 种解:
0 0 0 0 0 1 0 0 
0 0 1 0 0 0 0 0 
0 0 0 0 0 0 1 0 
0 1 0 0 0 0 0 0 
0 0 0 1 0 0 0 0 
0 0 0 0 0 0 0 1 
1 0 0 0 0 0 0 0 
0 0 0 0 1 0 0 0 
第 74 种解:
0 0 0 0 0 1 0 0 
0 0 1 0 0 0 0 0 
0 0 0 0 0 0 1 0 
0 1 0 0 0 0 0 0 
0 0 0 0 0 0 0 1 
0 0 0 0 1 0 0 0 
1 0 0 0 0 0 0 0 
0 0 0 1 0 0 0 0 
第 75 种解:
0 0 0 0 0 1 0 0 
0 0 1 0 0 0 0 0 
0 0 0 0 0 0 1 0 
0 0 0 1 0 0 0 0 
1 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 1 
0 1 0 0 0 0 0 0 
0 0 0 0 1 0 0 0 
第 76 种解:
0 0 0 0 0 1 0 0 
0 0 0 1 0 0 0 0 
1 0 0 0 0 0 0 0 
0 0 0 0 1 0 0 0 
0 0 0 0 0 0 0 1 
0 1 0 0 0 0 0 0 
0 0 0 0 0 0 1 0 
0 0 1 0 0 0 0 0 
第 77 种解:
0 0 0 0 0 1 0 0 
0 0 0 1 0 0 0 0 
0 1 0 0 0 0 0 0 
0 0 0 0 0 0 0 1 
0 0 0 0 1 0 0 0 
0 0 0 0 0 0 1 0 
1 0 0 0 0 0 0 0 
0 0 1 0 0 0 0 0 
第 78 种解:
0 0 0 0 0 1 0 0 
0 0 0 1 0 0 0 0 
0 0 0 0 0 0 1 0 
1 0 0 0 0 0 0 0 
0 0 1 0 0 0 0 0 
0 0 0 0 1 0 0 0 
0 1 0 0 0 0 0 0 
0 0 0 0 0 0 0 1 
第 79 种解:
0 0 0 0 0 1 0 0 
0 0 0 1 0 0 0 0 
0 0 0 0 0 0 1 0 
1 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 1 
0 1 0 0 0 0 0 0 
0 0 0 0 1 0 0 0 
0 0 1 0 0 0 0 0 
第 80 种解:
0 0 0 0 0 1 0 0 
0 0 0 0 0 0 0 1 
0 1 0 0 0 0 0 0 
0 0 0 1 0 0 0 0 
1 0 0 0 0 0 0 0 
0 0 0 0 0 0 1 0 
0 0 0 0 1 0 0 0 
0 0 1 0 0 0 0 0 
第 81 种解:
0 0 0 0 0 0 1 0 
1 0 0 0 0 0 0 0 
0 0 1 0 0 0 0 0 
0 0 0 0 0 0 0 1 
0 0 0 0 0 1 0 0 
0 0 0 1 0 0 0 0 
0 1 0 0 0 0 0 0 
0 0 0 0 1 0 0 0 
第 82 种解:
0 0 0 0 0 0 1 0 
0 1 0 0 0 0 0 0 
0 0 0 1 0 0 0 0 
1 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 1 
0 0 0 0 1 0 0 0 
0 0 1 0 0 0 0 0 
0 0 0 0 0 1 0 0 
第 83 种解:
0 0 0 0 0 0 1 0 
0 1 0 0 0 0 0 0 
0 0 0 0 0 1 0 0 
0 0 1 0 0 0 0 0 
1 0 0 0 0 0 0 0 
0 0 0 1 0 0 0 0 
0 0 0 0 0 0 0 1 
0 0 0 0 1 0 0 0 
第 84 种解:
0 0 0 0 0 0 1 0 
0 0 1 0 0 0 0 0 
1 0 0 0 0 0 0 0 
0 0 0 0 0 1 0 0 
0 0 0 0 0 0 0 1 
0 0 0 0 1 0 0 0 
0 1 0 0 0 0 0 0 
0 0 0 1 0 0 0 0 
第 85 种解:
0 0 0 0 0 0 1 0 
0 0 1 0 0 0 0 0 
0 0 0 0 0 0 0 1 
0 1 0 0 0 0 0 0 
0 0 0 0 1 0 0 0 
1 0 0 0 0 0 0 0 
0 0 0 0 0 1 0 0 
0 0 0 1 0 0 0 0 
第 86 种解:
0 0 0 0 0 0 1 0 
0 0 0 1 0 0 0 0 
0 1 0 0 0 0 0 0 
0 0 0 0 1 0 0 0 
0 0 0 0 0 0 0 1 
1 0 0 0 0 0 0 0 
0 0 1 0 0 0 0 0 
0 0 0 0 0 1 0 0 
第 87 种解:
0 0 0 0 0 0 1 0 
0 0 0 1 0 0 0 0 
0 1 0 0 0 0 0 0 
0 0 0 0 0 0 0 1 
0 0 0 0 0 1 0 0 
1 0 0 0 0 0 0 0 
0 0 1 0 0 0 0 0 
0 0 0 0 1 0 0 0 
第 88 种解:
0 0 0 0 0 0 1 0 
0 0 0 0 1 0 0 0 
0 0 1 0 0 0 0 0 
1 0 0 0 0 0 0 0 
0 0 0 0 0 1 0 0 
0 0 0 0 0 0 0 1 
0 1 0 0 0 0 0 0 
0 0 0 1 0 0 0 0 
第 89 种解:
0 0 0 0 0 0 0 1 
0 1 0 0 0 0 0 0 
0 0 0 1 0 0 0 0 
1 0 0 0 0 0 0 0 
0 0 0 0 0 0 1 0 
0 0 0 0 1 0 0 0 
0 0 1 0 0 0 0 0 
0 0 0 0 0 1 0 0 
第 90 种解:
0 0 0 0 0 0 0 1 
0 1 0 0 0 0 0 0 
0 0 0 0 1 0 0 0 
0 0 1 0 0 0 0 0 
1 0 0 0 0 0 0 0 
0 0 0 0 0 0 1 0 
0 0 0 1 0 0 0 0 
0 0 0 0 0 1 0 0 
第 91 种解:
0 0 0 0 0 0 0 1 
0 0 1 0 0 0 0 0 
1 0 0 0 0 0 0 0 
0 0 0 0 0 1 0 0 
0 1 0 0 0 0 0 0 
0 0 0 0 1 0 0 0 
0 0 0 0 0 0 1 0 
0 0 0 1 0 0 0 0 
第 92 种解:
0 0 0 0 0 0 0 1 
0 0 0 1 0 0 0 0 
1 0 0 0 0 0 0 0 
0 0 1 0 0 0 0 0 
0 0 0 0 0 1 0 0 
0 1 0 0 0 0 0 0 
0 0 0 0 0 0 1 0 
0 0 0 0 1 0 0 0 
解决 8 皇后问题,用时:130 毫秒,方案共 92 种。
第二种方案

对于第一种方案,使用二维数组表示棋盘数据,内存浪费严重,同时每次递归时使用JAVA的clone函数克隆一个新的棋盘,消耗很大,这里对第一种方案进行改进。

我们考虑将二维数组使用一维数组代替,将一维数组的下标数据利用起来,模仿棋盘结构:chess[R]=C,表示棋盘上R行C列有一个皇后。

这样,程序的空间效率会得到迅速提高,同时二维数据改变成一维数据,遍历过程也会大为缩减,时间效率有所提高,下面贴出代码:

package com.test.queens;

public class QueenCaseTest {

    // 皇后的个数
    private int queensNum = 8;

    // queens[i] = j 表示:第 i 行的第 j 列放置一个皇后。
    private int[] queens = new int[queensNum];

    private int count = 0;  // 方案计数器

    // 初始化变量
    private void init() {
        for (int i = 0; i < queensNum; i++) {
            queens[i] = -1;
        }
    }

    
    void place(int[] queens, int n, int rowNo) {
        if (rowNo >= n) {
            printSolution(queens, n);
            return;
        }

        // 尝试第k行的每一列
        int[] queensTemp = queens.clone();
        for (int j = 0; j < n; j++) {
            if (canPlace(queensTemp, rowNo, j)) { // 判断 第k行第j列 是否可以摆放皇后
                queensTemp[rowNo] = j;
                place(queensTemp, n, rowNo + 1); // 在成功完成上次任务后,开始做下一个任务
            }
        }
    }


    
    private boolean canPlace(int[] queens, int rowNo, int columnNo) {
        int i = 0;
        while (i < rowNo) { // 遍历行
            // 第i行的皇后是否在k列 或 (j,q[j])与(i,k)是否在斜线上
            if ((queens[i] == columnNo) || ((i - rowNo) == (queens[i] - columnNo)) || ((i - rowNo) == (columnNo - queens[i])))
                return false;
            i++;
        }

        return true;
    }

    
    void printSolution(int[] queens, int n) {
        count++;
        System.out.println("第 " + count + " 种解:");
        int rowNo, columnNo;
        for (int i = 0; i < n; i++) {
            rowNo = i + 1;
            columnNo = queens[i] + 1;
            System.out.print("(" + rowNo + ", " + columnNo + ")");
        }
        System.out.println();

        for (int i = 0; i < n; i++) { // 遍历行
            for (int j = 0; j < n; j++) {  // 遍历列
                if (queens[i] != j) {
                    System.out.print(0 + " ");
                } else {
                    System.out.print(1 + " ");
                }

            }
            System.out.println();
        }
    }


    // 测试
    public static void main(String[] args) {
        QueenCaseTest chess = new QueenCaseTest();
        chess.init();
        // 从第 1 列开始求解
        chess.place(chess.queens, chess.queensNum, 0);
    }
}

运行结果如下:

第 1 种解:
(1, 1)(2, 5)(3, 8)(4, 6)(5, 3)(6, 7)(7, 2)(8, 4)
1 0 0 0 0 0 0 0 
0 0 0 0 1 0 0 0 
0 0 0 0 0 0 0 1 
0 0 0 0 0 1 0 0 
0 0 1 0 0 0 0 0 
0 0 0 0 0 0 1 0 
0 1 0 0 0 0 0 0 
0 0 0 1 0 0 0 0 
第 2 种解:
(1, 1)(2, 6)(3, 8)(4, 3)(5, 7)(6, 4)(7, 2)(8, 5)
1 0 0 0 0 0 0 0 
0 0 0 0 0 1 0 0 
0 0 0 0 0 0 0 1 
0 0 1 0 0 0 0 0 
0 0 0 0 0 0 1 0 
0 0 0 1 0 0 0 0 
0 1 0 0 0 0 0 0 
0 0 0 0 1 0 0 0 
第 3 种解:
(1, 1)(2, 7)(3, 4)(4, 6)(5, 8)(6, 2)(7, 5)(8, 3)
1 0 0 0 0 0 0 0 
0 0 0 0 0 0 1 0 
0 0 0 1 0 0 0 0 
0 0 0 0 0 1 0 0 
0 0 0 0 0 0 0 1 
0 1 0 0 0 0 0 0 
0 0 0 0 1 0 0 0 
0 0 1 0 0 0 0 0 
第 4 种解:
(1, 1)(2, 7)(3, 5)(4, 8)(5, 2)(6, 4)(7, 6)(8, 3)
1 0 0 0 0 0 0 0 
0 0 0 0 0 0 1 0 
0 0 0 0 1 0 0 0 
0 0 0 0 0 0 0 1 
0 1 0 0 0 0 0 0 
0 0 0 1 0 0 0 0 
0 0 0 0 0 1 0 0 
0 0 1 0 0 0 0 0 
第 5 种解:
(1, 2)(2, 4)(3, 6)(4, 8)(5, 3)(6, 1)(7, 7)(8, 5)
0 1 0 0 0 0 0 0 
0 0 0 1 0 0 0 0 
0 0 0 0 0 1 0 0 
0 0 0 0 0 0 0 1 
0 0 1 0 0 0 0 0 
1 0 0 0 0 0 0 0 
0 0 0 0 0 0 1 0 
0 0 0 0 1 0 0 0 
第 6 种解:
(1, 2)(2, 5)(3, 7)(4, 1)(5, 3)(6, 8)(7, 6)(8, 4)
0 1 0 0 0 0 0 0 
0 0 0 0 1 0 0 0 
0 0 0 0 0 0 1 0 
1 0 0 0 0 0 0 0 
0 0 1 0 0 0 0 0 
0 0 0 0 0 0 0 1 
0 0 0 0 0 1 0 0 
0 0 0 1 0 0 0 0 
第 7 种解:
(1, 2)(2, 5)(3, 7)(4, 4)(5, 1)(6, 8)(7, 6)(8, 3)
0 1 0 0 0 0 0 0 
0 0 0 0 1 0 0 0 
0 0 0 0 0 0 1 0 
0 0 0 1 0 0 0 0 
1 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 1 
0 0 0 0 0 1 0 0 
0 0 1 0 0 0 0 0 
第 8 种解:
(1, 2)(2, 6)(3, 1)(4, 7)(5, 4)(6, 8)(7, 3)(8, 5)
0 1 0 0 0 0 0 0 
0 0 0 0 0 1 0 0 
1 0 0 0 0 0 0 0 
0 0 0 0 0 0 1 0 
0 0 0 1 0 0 0 0 
0 0 0 0 0 0 0 1 
0 0 1 0 0 0 0 0 
0 0 0 0 1 0 0 0 
第 9 种解:
(1, 2)(2, 6)(3, 8)(4, 3)(5, 1)(6, 4)(7, 7)(8, 5)
0 1 0 0 0 0 0 0 
0 0 0 0 0 1 0 0 
0 0 0 0 0 0 0 1 
0 0 1 0 0 0 0 0 
1 0 0 0 0 0 0 0 
0 0 0 1 0 0 0 0 
0 0 0 0 0 0 1 0 
0 0 0 0 1 0 0 0 
第 10 种解:
(1, 2)(2, 7)(3, 3)(4, 6)(5, 8)(6, 5)(7, 1)(8, 4)
0 1 0 0 0 0 0 0 
0 0 0 0 0 0 1 0 
0 0 1 0 0 0 0 0 
0 0 0 0 0 1 0 0 
0 0 0 0 0 0 0 1 
0 0 0 0 1 0 0 0 
1 0 0 0 0 0 0 0 
0 0 0 1 0 0 0 0 
第 11 种解:
(1, 2)(2, 7)(3, 5)(4, 8)(5, 1)(6, 4)(7, 6)(8, 3)
0 1 0 0 0 0 0 0 
0 0 0 0 0 0 1 0 
0 0 0 0 1 0 0 0 
0 0 0 0 0 0 0 1 
1 0 0 0 0 0 0 0 
0 0 0 1 0 0 0 0 
0 0 0 0 0 1 0 0 
0 0 1 0 0 0 0 0 
第 12 种解:
(1, 2)(2, 8)(3, 6)(4, 1)(5, 3)(6, 5)(7, 7)(8, 4)
0 1 0 0 0 0 0 0 
0 0 0 0 0 0 0 1 
0 0 0 0 0 1 0 0 
1 0 0 0 0 0 0 0 
0 0 1 0 0 0 0 0 
0 0 0 0 1 0 0 0 
0 0 0 0 0 0 1 0 
0 0 0 1 0 0 0 0 
第 13 种解:
(1, 3)(2, 1)(3, 7)(4, 5)(5, 8)(6, 2)(7, 4)(8, 6)
0 0 1 0 0 0 0 0 
1 0 0 0 0 0 0 0 
0 0 0 0 0 0 1 0 
0 0 0 0 1 0 0 0 
0 0 0 0 0 0 0 1 
0 1 0 0 0 0 0 0 
0 0 0 1 0 0 0 0 
0 0 0 0 0 1 0 0 
第 14 种解:
(1, 3)(2, 5)(3, 2)(4, 8)(5, 1)(6, 7)(7, 4)(8, 6)
0 0 1 0 0 0 0 0 
0 0 0 0 1 0 0 0 
0 1 0 0 0 0 0 0 
0 0 0 0 0 0 0 1 
1 0 0 0 0 0 0 0 
0 0 0 0 0 0 1 0 
0 0 0 1 0 0 0 0 
0 0 0 0 0 1 0 0 
第 15 种解:
(1, 3)(2, 5)(3, 2)(4, 8)(5, 6)(6, 4)(7, 7)(8, 1)
0 0 1 0 0 0 0 0 
0 0 0 0 1 0 0 0 
0 1 0 0 0 0 0 0 
0 0 0 0 0 0 0 1 
0 0 0 0 0 1 0 0 
0 0 0 1 0 0 0 0 
0 0 0 0 0 0 1 0 
1 0 0 0 0 0 0 0 
第 16 种解:
(1, 3)(2, 5)(3, 7)(4, 1)(5, 4)(6, 2)(7, 8)(8, 6)
0 0 1 0 0 0 0 0 
0 0 0 0 1 0 0 0 
0 0 0 0 0 0 1 0 
1 0 0 0 0 0 0 0 
0 0 0 1 0 0 0 0 
0 1 0 0 0 0 0 0 
0 0 0 0 0 0 0 1 
0 0 0 0 0 1 0 0 
第 17 种解:
(1, 3)(2, 5)(3, 8)(4, 4)(5, 1)(6, 7)(7, 2)(8, 6)
0 0 1 0 0 0 0 0 
0 0 0 0 1 0 0 0 
0 0 0 0 0 0 0 1 
0 0 0 1 0 0 0 0 
1 0 0 0 0 0 0 0 
0 0 0 0 0 0 1 0 
0 1 0 0 0 0 0 0 
0 0 0 0 0 1 0 0 
第 18 种解:
(1, 3)(2, 6)(3, 2)(4, 5)(5, 8)(6, 1)(7, 7)(8, 4)
0 0 1 0 0 0 0 0 
0 0 0 0 0 1 0 0 
0 1 0 0 0 0 0 0 
0 0 0 0 1 0 0 0 
0 0 0 0 0 0 0 1 
1 0 0 0 0 0 0 0 
0 0 0 0 0 0 1 0 
0 0 0 1 0 0 0 0 
第 19 种解:
(1, 3)(2, 6)(3, 2)(4, 7)(5, 1)(6, 4)(7, 8)(8, 5)
0 0 1 0 0 0 0 0 
0 0 0 0 0 1 0 0 
0 1 0 0 0 0 0 0 
0 0 0 0 0 0 1 0 
1 0 0 0 0 0 0 0 
0 0 0 1 0 0 0 0 
0 0 0 0 0 0 0 1 
0 0 0 0 1 0 0 0 
第 20 种解:
(1, 3)(2, 6)(3, 2)(4, 7)(5, 5)(6, 1)(7, 8)(8, 4)
0 0 1 0 0 0 0 0 
0 0 0 0 0 1 0 0 
0 1 0 0 0 0 0 0 
0 0 0 0 0 0 1 0 
0 0 0 0 1 0 0 0 
1 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 1 
0 0 0 1 0 0 0 0 
第 21 种解:
(1, 3)(2, 6)(3, 4)(4, 1)(5, 8)(6, 5)(7, 7)(8, 2)
0 0 1 0 0 0 0 0 
0 0 0 0 0 1 0 0 
0 0 0 1 0 0 0 0 
1 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 1 
0 0 0 0 1 0 0 0 
0 0 0 0 0 0 1 0 
0 1 0 0 0 0 0 0 
第 22 种解:
(1, 3)(2, 6)(3, 4)(4, 2)(5, 8)(6, 5)(7, 7)(8, 1)
0 0 1 0 0 0 0 0 
0 0 0 0 0 1 0 0 
0 0 0 1 0 0 0 0 
0 1 0 0 0 0 0 0 
0 0 0 0 0 0 0 1 
0 0 0 0 1 0 0 0 
0 0 0 0 0 0 1 0 
1 0 0 0 0 0 0 0 
第 23 种解:
(1, 3)(2, 6)(3, 8)(4, 1)(5, 4)(6, 7)(7, 5)(8, 2)
0 0 1 0 0 0 0 0 
0 0 0 0 0 1 0 0 
0 0 0 0 0 0 0 1 
1 0 0 0 0 0 0 0 
0 0 0 1 0 0 0 0 
0 0 0 0 0 0 1 0 
0 0 0 0 1 0 0 0 
0 1 0 0 0 0 0 0 
第 24 种解:
(1, 3)(2, 6)(3, 8)(4, 1)(5, 5)(6, 7)(7, 2)(8, 4)
0 0 1 0 0 0 0 0 
0 0 0 0 0 1 0 0 
0 0 0 0 0 0 0 1 
1 0 0 0 0 0 0 0 
0 0 0 0 1 0 0 0 
0 0 0 0 0 0 1 0 
0 1 0 0 0 0 0 0 
0 0 0 1 0 0 0 0 
第 25 种解:
(1, 3)(2, 6)(3, 8)(4, 2)(5, 4)(6, 1)(7, 7)(8, 5)
0 0 1 0 0 0 0 0 
0 0 0 0 0 1 0 0 
0 0 0 0 0 0 0 1 
0 1 0 0 0 0 0 0 
0 0 0 1 0 0 0 0 
1 0 0 0 0 0 0 0 
0 0 0 0 0 0 1 0 
0 0 0 0 1 0 0 0 
第 26 种解:
(1, 3)(2, 7)(3, 2)(4, 8)(5, 5)(6, 1)(7, 4)(8, 6)
0 0 1 0 0 0 0 0 
0 0 0 0 0 0 1 0 
0 1 0 0 0 0 0 0 
0 0 0 0 0 0 0 1 
0 0 0 0 1 0 0 0 
1 0 0 0 0 0 0 0 
0 0 0 1 0 0 0 0 
0 0 0 0 0 1 0 0 
第 27 种解:
(1, 3)(2, 7)(3, 2)(4, 8)(5, 6)(6, 4)(7, 1)(8, 5)
0 0 1 0 0 0 0 0 
0 0 0 0 0 0 1 0 
0 1 0 0 0 0 0 0 
0 0 0 0 0 0 0 1 
0 0 0 0 0 1 0 0 
0 0 0 1 0 0 0 0 
1 0 0 0 0 0 0 0 
0 0 0 0 1 0 0 0 
第 28 种解:
(1, 3)(2, 8)(3, 4)(4, 7)(5, 1)(6, 6)(7, 2)(8, 5)
0 0 1 0 0 0 0 0 
0 0 0 0 0 0 0 1 
0 0 0 1 0 0 0 0 
0 0 0 0 0 0 1 0 
1 0 0 0 0 0 0 0 
0 0 0 0 0 1 0 0 
0 1 0 0 0 0 0 0 
0 0 0 0 1 0 0 0 
第 29 种解:
(1, 4)(2, 1)(3, 5)(4, 8)(5, 2)(6, 7)(7, 3)(8, 6)
0 0 0 1 0 0 0 0 
1 0 0 0 0 0 0 0 
0 0 0 0 1 0 0 0 
0 0 0 0 0 0 0 1 
0 1 0 0 0 0 0 0 
0 0 0 0 0 0 1 0 
0 0 1 0 0 0 0 0 
0 0 0 0 0 1 0 0 
第 30 种解:
(1, 4)(2, 1)(3, 5)(4, 8)(5, 6)(6, 3)(7, 7)(8, 2)
0 0 0 1 0 0 0 0 
1 0 0 0 0 0 0 0 
0 0 0 0 1 0 0 0 
0 0 0 0 0 0 0 1 
0 0 0 0 0 1 0 0 
0 0 1 0 0 0 0 0 
0 0 0 0 0 0 1 0 
0 1 0 0 0 0 0 0 
第 31 种解:
(1, 4)(2, 2)(3, 5)(4, 8)(5, 6)(6, 1)(7, 3)(8, 7)
0 0 0 1 0 0 0 0 
0 1 0 0 0 0 0 0 
0 0 0 0 1 0 0 0 
0 0 0 0 0 0 0 1 
0 0 0 0 0 1 0 0 
1 0 0 0 0 0 0 0 
0 0 1 0 0 0 0 0 
0 0 0 0 0 0 1 0 
第 32 种解:
(1, 4)(2, 2)(3, 7)(4, 3)(5, 6)(6, 8)(7, 1)(8, 5)
0 0 0 1 0 0 0 0 
0 1 0 0 0 0 0 0 
0 0 0 0 0 0 1 0 
0 0 1 0 0 0 0 0 
0 0 0 0 0 1 0 0 
0 0 0 0 0 0 0 1 
1 0 0 0 0 0 0 0 
0 0 0 0 1 0 0 0 
第 33 种解:
(1, 4)(2, 2)(3, 7)(4, 3)(5, 6)(6, 8)(7, 5)(8, 1)
0 0 0 1 0 0 0 0 
0 1 0 0 0 0 0 0 
0 0 0 0 0 0 1 0 
0 0 1 0 0 0 0 0 
0 0 0 0 0 1 0 0 
0 0 0 0 0 0 0 1 
0 0 0 0 1 0 0 0 
1 0 0 0 0 0 0 0 
第 34 种解:
(1, 4)(2, 2)(3, 7)(4, 5)(5, 1)(6, 8)(7, 6)(8, 3)
0 0 0 1 0 0 0 0 
0 1 0 0 0 0 0 0 
0 0 0 0 0 0 1 0 
0 0 0 0 1 0 0 0 
1 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 1 
0 0 0 0 0 1 0 0 
0 0 1 0 0 0 0 0 
第 35 种解:
(1, 4)(2, 2)(3, 8)(4, 5)(5, 7)(6, 1)(7, 3)(8, 6)
0 0 0 1 0 0 0 0 
0 1 0 0 0 0 0 0 
0 0 0 0 0 0 0 1 
0 0 0 0 1 0 0 0 
0 0 0 0 0 0 1 0 
1 0 0 0 0 0 0 0 
0 0 1 0 0 0 0 0 
0 0 0 0 0 1 0 0 
第 36 种解:
(1, 4)(2, 2)(3, 8)(4, 6)(5, 1)(6, 3)(7, 5)(8, 7)
0 0 0 1 0 0 0 0 
0 1 0 0 0 0 0 0 
0 0 0 0 0 0 0 1 
0 0 0 0 0 1 0 0 
1 0 0 0 0 0 0 0 
0 0 1 0 0 0 0 0 
0 0 0 0 1 0 0 0 
0 0 0 0 0 0 1 0 
第 37 种解:
(1, 4)(2, 6)(3, 1)(4, 5)(5, 2)(6, 8)(7, 3)(8, 7)
0 0 0 1 0 0 0 0 
0 0 0 0 0 1 0 0 
1 0 0 0 0 0 0 0 
0 0 0 0 1 0 0 0 
0 1 0 0 0 0 0 0 
0 0 0 0 0 0 0 1 
0 0 1 0 0 0 0 0 
0 0 0 0 0 0 1 0 
第 38 种解:
(1, 4)(2, 6)(3, 8)(4, 2)(5, 7)(6, 1)(7, 3)(8, 5)
0 0 0 1 0 0 0 0 
0 0 0 0 0 1 0 0 
0 0 0 0 0 0 0 1 
0 1 0 0 0 0 0 0 
0 0 0 0 0 0 1 0 
1 0 0 0 0 0 0 0 
0 0 1 0 0 0 0 0 
0 0 0 0 1 0 0 0 
第 39 种解:
(1, 4)(2, 6)(3, 8)(4, 3)(5, 1)(6, 7)(7, 5)(8, 2)
0 0 0 1 0 0 0 0 
0 0 0 0 0 1 0 0 
0 0 0 0 0 0 0 1 
0 0 1 0 0 0 0 0 
1 0 0 0 0 0 0 0 
0 0 0 0 0 0 1 0 
0 0 0 0 1 0 0 0 
0 1 0 0 0 0 0 0 
第 40 种解:
(1, 4)(2, 7)(3, 1)(4, 8)(5, 5)(6, 2)(7, 6)(8, 3)
0 0 0 1 0 0 0 0 
0 0 0 0 0 0 1 0 
1 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 1 
0 0 0 0 1 0 0 0 
0 1 0 0 0 0 0 0 
0 0 0 0 0 1 0 0 
0 0 1 0 0 0 0 0 
第 41 种解:
(1, 4)(2, 7)(3, 3)(4, 8)(5, 2)(6, 5)(7, 1)(8, 6)
0 0 0 1 0 0 0 0 
0 0 0 0 0 0 1 0 
0 0 1 0 0 0 0 0 
0 0 0 0 0 0 0 1 
0 1 0 0 0 0 0 0 
0 0 0 0 1 0 0 0 
1 0 0 0 0 0 0 0 
0 0 0 0 0 1 0 0 
第 42 种解:
(1, 4)(2, 7)(3, 5)(4, 2)(5, 6)(6, 1)(7, 3)(8, 8)
0 0 0 1 0 0 0 0 
0 0 0 0 0 0 1 0 
0 0 0 0 1 0 0 0 
0 1 0 0 0 0 0 0 
0 0 0 0 0 1 0 0 
1 0 0 0 0 0 0 0 
0 0 1 0 0 0 0 0 
0 0 0 0 0 0 0 1 
第 43 种解:
(1, 4)(2, 7)(3, 5)(4, 3)(5, 1)(6, 6)(7, 8)(8, 2)
0 0 0 1 0 0 0 0 
0 0 0 0 0 0 1 0 
0 0 0 0 1 0 0 0 
0 0 1 0 0 0 0 0 
1 0 0 0 0 0 0 0 
0 0 0 0 0 1 0 0 
0 0 0 0 0 0 0 1 
0 1 0 0 0 0 0 0 
第 44 种解:
(1, 4)(2, 8)(3, 1)(4, 3)(5, 6)(6, 2)(7, 7)(8, 5)
0 0 0 1 0 0 0 0 
0 0 0 0 0 0 0 1 
1 0 0 0 0 0 0 0 
0 0 1 0 0 0 0 0 
0 0 0 0 0 1 0 0 
0 1 0 0 0 0 0 0 
0 0 0 0 0 0 1 0 
0 0 0 0 1 0 0 0 
第 45 种解:
(1, 4)(2, 8)(3, 1)(4, 5)(5, 7)(6, 2)(7, 6)(8, 3)
0 0 0 1 0 0 0 0 
0 0 0 0 0 0 0 1 
1 0 0 0 0 0 0 0 
0 0 0 0 1 0 0 0 
0 0 0 0 0 0 1 0 
0 1 0 0 0 0 0 0 
0 0 0 0 0 1 0 0 
0 0 1 0 0 0 0 0 
第 46 种解:
(1, 4)(2, 8)(3, 5)(4, 3)(5, 1)(6, 7)(7, 2)(8, 6)
0 0 0 1 0 0 0 0 
0 0 0 0 0 0 0 1 
0 0 0 0 1 0 0 0 
0 0 1 0 0 0 0 0 
1 0 0 0 0 0 0 0 
0 0 0 0 0 0 1 0 
0 1 0 0 0 0 0 0 
0 0 0 0 0 1 0 0 
第 47 种解:
(1, 5)(2, 1)(3, 4)(4, 6)(5, 8)(6, 2)(7, 7)(8, 3)
0 0 0 0 1 0 0 0 
1 0 0 0 0 0 0 0 
0 0 0 1 0 0 0 0 
0 0 0 0 0 1 0 0 
0 0 0 0 0 0 0 1 
0 1 0 0 0 0 0 0 
0 0 0 0 0 0 1 0 
0 0 1 0 0 0 0 0 
第 48 种解:
(1, 5)(2, 1)(3, 8)(4, 4)(5, 2)(6, 7)(7, 3)(8, 6)
0 0 0 0 1 0 0 0 
1 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 1 
0 0 0 1 0 0 0 0 
0 1 0 0 0 0 0 0 
0 0 0 0 0 0 1 0 
0 0 1 0 0 0 0 0 
0 0 0 0 0 1 0 0 
第 49 种解:
(1, 5)(2, 1)(3, 8)(4, 6)(5, 3)(6, 7)(7, 2)(8, 4)
0 0 0 0 1 0 0 0 
1 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 1 
0 0 0 0 0 1 0 0 
0 0 1 0 0 0 0 0 
0 0 0 0 0 0 1 0 
0 1 0 0 0 0 0 0 
0 0 0 1 0 0 0 0 
第 50 种解:
(1, 5)(2, 2)(3, 4)(4, 6)(5, 8)(6, 3)(7, 1)(8, 7)
0 0 0 0 1 0 0 0 
0 1 0 0 0 0 0 0 
0 0 0 1 0 0 0 0 
0 0 0 0 0 1 0 0 
0 0 0 0 0 0 0 1 
0 0 1 0 0 0 0 0 
1 0 0 0 0 0 0 0 
0 0 0 0 0 0 1 0 
第 51 种解:
(1, 5)(2, 2)(3, 4)(4, 7)(5, 3)(6, 8)(7, 6)(8, 1)
0 0 0 0 1 0 0 0 
0 1 0 0 0 0 0 0 
0 0 0 1 0 0 0 0 
0 0 0 0 0 0 1 0 
0 0 1 0 0 0 0 0 
0 0 0 0 0 0 0 1 
0 0 0 0 0 1 0 0 
1 0 0 0 0 0 0 0 
第 52 种解:
(1, 5)(2, 2)(3, 6)(4, 1)(5, 7)(6, 4)(7, 8)(8, 3)
0 0 0 0 1 0 0 0 
0 1 0 0 0 0 0 0 
0 0 0 0 0 1 0 0 
1 0 0 0 0 0 0 0 
0 0 0 0 0 0 1 0 
0 0 0 1 0 0 0 0 
0 0 0 0 0 0 0 1 
0 0 1 0 0 0 0 0 
第 53 种解:
(1, 5)(2, 2)(3, 8)(4, 1)(5, 4)(6, 7)(7, 3)(8, 6)
0 0 0 0 1 0 0 0 
0 1 0 0 0 0 0 0 
0 0 0 0 0 0 0 1 
1 0 0 0 0 0 0 0 
0 0 0 1 0 0 0 0 
0 0 0 0 0 0 1 0 
0 0 1 0 0 0 0 0 
0 0 0 0 0 1 0 0 
第 54 种解:
(1, 5)(2, 3)(3, 1)(4, 6)(5, 8)(6, 2)(7, 4)(8, 7)
0 0 0 0 1 0 0 0 
0 0 1 0 0 0 0 0 
1 0 0 0 0 0 0 0 
0 0 0 0 0 1 0 0 
0 0 0 0 0 0 0 1 
0 1 0 0 0 0 0 0 
0 0 0 1 0 0 0 0 
0 0 0 0 0 0 1 0 
第 55 种解:
(1, 5)(2, 3)(3, 1)(4, 7)(5, 2)(6, 8)(7, 6)(8, 4)
0 0 0 0 1 0 0 0 
0 0 1 0 0 0 0 0 
1 0 0 0 0 0 0 0 
0 0 0 0 0 0 1 0 
0 1 0 0 0 0 0 0 
0 0 0 0 0 0 0 1 
0 0 0 0 0 1 0 0 
0 0 0 1 0 0 0 0 
第 56 种解:
(1, 5)(2, 3)(3, 8)(4, 4)(5, 7)(6, 1)(7, 6)(8, 2)
0 0 0 0 1 0 0 0 
0 0 1 0 0 0 0 0 
0 0 0 0 0 0 0 1 
0 0 0 1 0 0 0 0 
0 0 0 0 0 0 1 0 
1 0 0 0 0 0 0 0 
0 0 0 0 0 1 0 0 
0 1 0 0 0 0 0 0 
第 57 种解:
(1, 5)(2, 7)(3, 1)(4, 3)(5, 8)(6, 6)(7, 4)(8, 2)
0 0 0 0 1 0 0 0 
0 0 0 0 0 0 1 0 
1 0 0 0 0 0 0 0 
0 0 1 0 0 0 0 0 
0 0 0 0 0 0 0 1 
0 0 0 0 0 1 0 0 
0 0 0 1 0 0 0 0 
0 1 0 0 0 0 0 0 
第 58 种解:
(1, 5)(2, 7)(3, 1)(4, 4)(5, 2)(6, 8)(7, 6)(8, 3)
0 0 0 0 1 0 0 0 
0 0 0 0 0 0 1 0 
1 0 0 0 0 0 0 0 
0 0 0 1 0 0 0 0 
0 1 0 0 0 0 0 0 
0 0 0 0 0 0 0 1 
0 0 0 0 0 1 0 0 
0 0 1 0 0 0 0 0 
第 59 种解:
(1, 5)(2, 7)(3, 2)(4, 4)(5, 8)(6, 1)(7, 3)(8, 6)
0 0 0 0 1 0 0 0 
0 0 0 0 0 0 1 0 
0 1 0 0 0 0 0 0 
0 0 0 1 0 0 0 0 
0 0 0 0 0 0 0 1 
1 0 0 0 0 0 0 0 
0 0 1 0 0 0 0 0 
0 0 0 0 0 1 0 0 
第 60 种解:
(1, 5)(2, 7)(3, 2)(4, 6)(5, 3)(6, 1)(7, 4)(8, 8)
0 0 0 0 1 0 0 0 
0 0 0 0 0 0 1 0 
0 1 0 0 0 0 0 0 
0 0 0 0 0 1 0 0 
0 0 1 0 0 0 0 0 
1 0 0 0 0 0 0 0 
0 0 0 1 0 0 0 0 
0 0 0 0 0 0 0 1 
第 61 种解:
(1, 5)(2, 7)(3, 2)(4, 6)(5, 3)(6, 1)(7, 8)(8, 4)
0 0 0 0 1 0 0 0 
0 0 0 0 0 0 1 0 
0 1 0 0 0 0 0 0 
0 0 0 0 0 1 0 0 
0 0 1 0 0 0 0 0 
1 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 1 
0 0 0 1 0 0 0 0 
第 62 种解:
(1, 5)(2, 7)(3, 4)(4, 1)(5, 3)(6, 8)(7, 6)(8, 2)
0 0 0 0 1 0 0 0 
0 0 0 0 0 0 1 0 
0 0 0 1 0 0 0 0 
1 0 0 0 0 0 0 0 
0 0 1 0 0 0 0 0 
0 0 0 0 0 0 0 1 
0 0 0 0 0 1 0 0 
0 1 0 0 0 0 0 0 
第 63 种解:
(1, 5)(2, 8)(3, 4)(4, 1)(5, 3)(6, 6)(7, 2)(8, 7)
0 0 0 0 1 0 0 0 
0 0 0 0 0 0 0 1 
0 0 0 1 0 0 0 0 
1 0 0 0 0 0 0 0 
0 0 1 0 0 0 0 0 
0 0 0 0 0 1 0 0 
0 1 0 0 0 0 0 0 
0 0 0 0 0 0 1 0 
第 64 种解:
(1, 5)(2, 8)(3, 4)(4, 1)(5, 7)(6, 2)(7, 6)(8, 3)
0 0 0 0 1 0 0 0 
0 0 0 0 0 0 0 1 
0 0 0 1 0 0 0 0 
1 0 0 0 0 0 0 0 
0 0 0 0 0 0 1 0 
0 1 0 0 0 0 0 0 
0 0 0 0 0 1 0 0 
0 0 1 0 0 0 0 0 
第 65 种解:
(1, 6)(2, 1)(3, 5)(4, 2)(5, 8)(6, 3)(7, 7)(8, 4)
0 0 0 0 0 1 0 0 
1 0 0 0 0 0 0 0 
0 0 0 0 1 0 0 0 
0 1 0 0 0 0 0 0 
0 0 0 0 0 0 0 1 
0 0 1 0 0 0 0 0 
0 0 0 0 0 0 1 0 
0 0 0 1 0 0 0 0 
第 66 种解:
(1, 6)(2, 2)(3, 7)(4, 1)(5, 3)(6, 5)(7, 8)(8, 4)
0 0 0 0 0 1 0 0 
0 1 0 0 0 0 0 0 
0 0 0 0 0 0 1 0 
1 0 0 0 0 0 0 0 
0 0 1 0 0 0 0 0 
0 0 0 0 1 0 0 0 
0 0 0 0 0 0 0 1 
0 0 0 1 0 0 0 0 
第 67 种解:
(1, 6)(2, 2)(3, 7)(4, 1)(5, 4)(6, 8)(7, 5)(8, 3)
0 0 0 0 0 1 0 0 
0 1 0 0 0 0 0 0 
0 0 0 0 0 0 1 0 
1 0 0 0 0 0 0 0 
0 0 0 1 0 0 0 0 
0 0 0 0 0 0 0 1 
0 0 0 0 1 0 0 0 
0 0 1 0 0 0 0 0 
第 68 种解:
(1, 6)(2, 3)(3, 1)(4, 7)(5, 5)(6, 8)(7, 2)(8, 4)
0 0 0 0 0 1 0 0 
0 0 1 0 0 0 0 0 
1 0 0 0 0 0 0 0 
0 0 0 0 0 0 1 0 
0 0 0 0 1 0 0 0 
0 0 0 0 0 0 0 1 
0 1 0 0 0 0 0 0 
0 0 0 1 0 0 0 0 
第 69 种解:
(1, 6)(2, 3)(3, 1)(4, 8)(5, 4)(6, 2)(7, 7)(8, 5)
0 0 0 0 0 1 0 0 
0 0 1 0 0 0 0 0 
1 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 1 
0 0 0 1 0 0 0 0 
0 1 0 0 0 0 0 0 
0 0 0 0 0 0 1 0 
0 0 0 0 1 0 0 0 
第 70 种解:
(1, 6)(2, 3)(3, 1)(4, 8)(5, 5)(6, 2)(7, 4)(8, 7)
0 0 0 0 0 1 0 0 
0 0 1 0 0 0 0 0 
1 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 1 
0 0 0 0 1 0 0 0 
0 1 0 0 0 0 0 0 
0 0 0 1 0 0 0 0 
0 0 0 0 0 0 1 0 
第 71 种解:
(1, 6)(2, 3)(3, 5)(4, 7)(5, 1)(6, 4)(7, 2)(8, 8)
0 0 0 0 0 1 0 0 
0 0 1 0 0 0 0 0 
0 0 0 0 1 0 0 0 
0 0 0 0 0 0 1 0 
1 0 0 0 0 0 0 0 
0 0 0 1 0 0 0 0 
0 1 0 0 0 0 0 0 
0 0 0 0 0 0 0 1 
第 72 种解:
(1, 6)(2, 3)(3, 5)(4, 8)(5, 1)(6, 4)(7, 2)(8, 7)
0 0 0 0 0 1 0 0 
0 0 1 0 0 0 0 0 
0 0 0 0 1 0 0 0 
0 0 0 0 0 0 0 1 
1 0 0 0 0 0 0 0 
0 0 0 1 0 0 0 0 
0 1 0 0 0 0 0 0 
0 0 0 0 0 0 1 0 
第 73 种解:
(1, 6)(2, 3)(3, 7)(4, 2)(5, 4)(6, 8)(7, 1)(8, 5)
0 0 0 0 0 1 0 0 
0 0 1 0 0 0 0 0 
0 0 0 0 0 0 1 0 
0 1 0 0 0 0 0 0 
0 0 0 1 0 0 0 0 
0 0 0 0 0 0 0 1 
1 0 0 0 0 0 0 0 
0 0 0 0 1 0 0 0 
第 74 种解:
(1, 6)(2, 3)(3, 7)(4, 2)(5, 8)(6, 5)(7, 1)(8, 4)
0 0 0 0 0 1 0 0 
0 0 1 0 0 0 0 0 
0 0 0 0 0 0 1 0 
0 1 0 0 0 0 0 0 
0 0 0 0 0 0 0 1 
0 0 0 0 1 0 0 0 
1 0 0 0 0 0 0 0 
0 0 0 1 0 0 0 0 
第 75 种解:
(1, 6)(2, 3)(3, 7)(4, 4)(5, 1)(6, 8)(7, 2)(8, 5)
0 0 0 0 0 1 0 0 
0 0 1 0 0 0 0 0 
0 0 0 0 0 0 1 0 
0 0 0 1 0 0 0 0 
1 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 1 
0 1 0 0 0 0 0 0 
0 0 0 0 1 0 0 0 
第 76 种解:
(1, 6)(2, 4)(3, 1)(4, 5)(5, 8)(6, 2)(7, 7)(8, 3)
0 0 0 0 0 1 0 0 
0 0 0 1 0 0 0 0 
1 0 0 0 0 0 0 0 
0 0 0 0 1 0 0 0 
0 0 0 0 0 0 0 1 
0 1 0 0 0 0 0 0 
0 0 0 0 0 0 1 0 
0 0 1 0 0 0 0 0 
第 77 种解:
(1, 6)(2, 4)(3, 2)(4, 8)(5, 5)(6, 7)(7, 1)(8, 3)
0 0 0 0 0 1 0 0 
0 0 0 1 0 0 0 0 
0 1 0 0 0 0 0 0 
0 0 0 0 0 0 0 1 
0 0 0 0 1 0 0 0 
0 0 0 0 0 0 1 0 
1 0 0 0 0 0 0 0 
0 0 1 0 0 0 0 0 
第 78 种解:
(1, 6)(2, 4)(3, 7)(4, 1)(5, 3)(6, 5)(7, 2)(8, 8)
0 0 0 0 0 1 0 0 
0 0 0 1 0 0 0 0 
0 0 0 0 0 0 1 0 
1 0 0 0 0 0 0 0 
0 0 1 0 0 0 0 0 
0 0 0 0 1 0 0 0 
0 1 0 0 0 0 0 0 
0 0 0 0 0 0 0 1 
第 79 种解:
(1, 6)(2, 4)(3, 7)(4, 1)(5, 8)(6, 2)(7, 5)(8, 3)
0 0 0 0 0 1 0 0 
0 0 0 1 0 0 0 0 
0 0 0 0 0 0 1 0 
1 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 1 
0 1 0 0 0 0 0 0 
0 0 0 0 1 0 0 0 
0 0 1 0 0 0 0 0 
第 80 种解:
(1, 6)(2, 8)(3, 2)(4, 4)(5, 1)(6, 7)(7, 5)(8, 3)
0 0 0 0 0 1 0 0 
0 0 0 0 0 0 0 1 
0 1 0 0 0 0 0 0 
0 0 0 1 0 0 0 0 
1 0 0 0 0 0 0 0 
0 0 0 0 0 0 1 0 
0 0 0 0 1 0 0 0 
0 0 1 0 0 0 0 0 
第 81 种解:
(1, 7)(2, 1)(3, 3)(4, 8)(5, 6)(6, 4)(7, 2)(8, 5)
0 0 0 0 0 0 1 0 
1 0 0 0 0 0 0 0 
0 0 1 0 0 0 0 0 
0 0 0 0 0 0 0 1 
0 0 0 0 0 1 0 0 
0 0 0 1 0 0 0 0 
0 1 0 0 0 0 0 0 
0 0 0 0 1 0 0 0 
第 82 种解:
(1, 7)(2, 2)(3, 4)(4, 1)(5, 8)(6, 5)(7, 3)(8, 6)
0 0 0 0 0 0 1 0 
0 1 0 0 0 0 0 0 
0 0 0 1 0 0 0 0 
1 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 1 
0 0 0 0 1 0 0 0 
0 0 1 0 0 0 0 0 
0 0 0 0 0 1 0 0 
第 83 种解:
(1, 7)(2, 2)(3, 6)(4, 3)(5, 1)(6, 4)(7, 8)(8, 5)
0 0 0 0 0 0 1 0 
0 1 0 0 0 0 0 0 
0 0 0 0 0 1 0 0 
0 0 1 0 0 0 0 0 
1 0 0 0 0 0 0 0 
0 0 0 1 0 0 0 0 
0 0 0 0 0 0 0 1 
0 0 0 0 1 0 0 0 
第 84 种解:
(1, 7)(2, 3)(3, 1)(4, 6)(5, 8)(6, 5)(7, 2)(8, 4)
0 0 0 0 0 0 1 0 
0 0 1 0 0 0 0 0 
1 0 0 0 0 0 0 0 
0 0 0 0 0 1 0 0 
0 0 0 0 0 0 0 1 
0 0 0 0 1 0 0 0 
0 1 0 0 0 0 0 0 
0 0 0 1 0 0 0 0 
第 85 种解:
(1, 7)(2, 3)(3, 8)(4, 2)(5, 5)(6, 1)(7, 6)(8, 4)
0 0 0 0 0 0 1 0 
0 0 1 0 0 0 0 0 
0 0 0 0 0 0 0 1 
0 1 0 0 0 0 0 0 
0 0 0 0 1 0 0 0 
1 0 0 0 0 0 0 0 
0 0 0 0 0 1 0 0 
0 0 0 1 0 0 0 0 
第 86 种解:
(1, 7)(2, 4)(3, 2)(4, 5)(5, 8)(6, 1)(7, 3)(8, 6)
0 0 0 0 0 0 1 0 
0 0 0 1 0 0 0 0 
0 1 0 0 0 0 0 0 
0 0 0 0 1 0 0 0 
0 0 0 0 0 0 0 1 
1 0 0 0 0 0 0 0 
0 0 1 0 0 0 0 0 
0 0 0 0 0 1 0 0 
第 87 种解:
(1, 7)(2, 4)(3, 2)(4, 8)(5, 6)(6, 1)(7, 3)(8, 5)
0 0 0 0 0 0 1 0 
0 0 0 1 0 0 0 0 
0 1 0 0 0 0 0 0 
0 0 0 0 0 0 0 1 
0 0 0 0 0 1 0 0 
1 0 0 0 0 0 0 0 
0 0 1 0 0 0 0 0 
0 0 0 0 1 0 0 0 
第 88 种解:
(1, 7)(2, 5)(3, 3)(4, 1)(5, 6)(6, 8)(7, 2)(8, 4)
0 0 0 0 0 0 1 0 
0 0 0 0 1 0 0 0 
0 0 1 0 0 0 0 0 
1 0 0 0 0 0 0 0 
0 0 0 0 0 1 0 0 
0 0 0 0 0 0 0 1 
0 1 0 0 0 0 0 0 
0 0 0 1 0 0 0 0 
第 89 种解:
(1, 8)(2, 2)(3, 4)(4, 1)(5, 7)(6, 5)(7, 3)(8, 6)
0 0 0 0 0 0 0 1 
0 1 0 0 0 0 0 0 
0 0 0 1 0 0 0 0 
1 0 0 0 0 0 0 0 
0 0 0 0 0 0 1 0 
0 0 0 0 1 0 0 0 
0 0 1 0 0 0 0 0 
0 0 0 0 0 1 0 0 
第 90 种解:
(1, 8)(2, 2)(3, 5)(4, 3)(5, 1)(6, 7)(7, 4)(8, 6)
0 0 0 0 0 0 0 1 
0 1 0 0 0 0 0 0 
0 0 0 0 1 0 0 0 
0 0 1 0 0 0 0 0 
1 0 0 0 0 0 0 0 
0 0 0 0 0 0 1 0 
0 0 0 1 0 0 0 0 
0 0 0 0 0 1 0 0 
第 91 种解:
(1, 8)(2, 3)(3, 1)(4, 6)(5, 2)(6, 5)(7, 7)(8, 4)
0 0 0 0 0 0 0 1 
0 0 1 0 0 0 0 0 
1 0 0 0 0 0 0 0 
0 0 0 0 0 1 0 0 
0 1 0 0 0 0 0 0 
0 0 0 0 1 0 0 0 
0 0 0 0 0 0 1 0 
0 0 0 1 0 0 0 0 
第 92 种解:
(1, 8)(2, 4)(3, 1)(4, 3)(5, 6)(6, 2)(7, 7)(8, 5)
0 0 0 0 0 0 0 1 
0 0 0 1 0 0 0 0 
1 0 0 0 0 0 0 0 
0 0 1 0 0 0 0 0 
0 0 0 0 0 1 0 0 
0 1 0 0 0 0 0 0 
0 0 0 0 0 0 1 0 
0 0 0 0 1 0 0 0 
解决 8 皇后问题,用时:20 毫秒,方案共 92 种。

两种方案对比,第二种方案性能远优于第一种方案。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/318919.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号