递归解决八皇后问题

刺骨的言语ヽ痛彻心扉 2021-07-24 23:08 493阅读 0赞

一 八皇后问题

八皇后问题,是一个古老而著名的问题,是回溯算法的典型案例。该问题是国际西洋棋棋手马克斯·贝瑟尔于1848 年提出:在 8×8 格的国际象棋上摆放八个皇后,使其不能互相攻击,即: 任意两个皇后都不能处于同一行 、同一列或同一斜线上,问有多少种摆法。答案是92种。

20210307175946697.png

二 八皇后问题算法

1 第一个皇后先放第一行第一列。

2 第二个皇后放在第二行第一列、然后判断是否可行,如果不可行,继续放在第二列、第三列、依次把所有列都放完,找到一个合适。

3 继续第三个皇后,还是第一列、第二列……直到第八个皇后也能放在一个不冲突的位置,算是找到了一个正确解。

4 当得到一个正确解时,在栈回退到上一个栈时,就会开始回溯,即将第一个皇后,放到第一列的所有正确解,全部得到。

5 然后回头继续第一个皇后放第二列,后面继续循环执行 1,2,3,4 的步骤。

三 图解

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2NoZW5ncWl1bWluZw_size_16_color_FFFFFF_t_70

四 点睛

理论上应该创建一个二维数组来表示棋盘,但是实际上可以通过算法,用一个一维数组即可解决问题. arr[8] ={0 , 4, 7, 5, 2, 6, 1, 3} ,其中:arr 下标表示第几行,即第几个皇后。arr[i] = val , 该表达式表示第i+1个皇后放在棋盘的第 i+1行的第 val+1 列

五 代码

  1. package com.atguigu.recursion;
  2. /**
  3. * @className: Queue8
  4. * @description: 八皇后问题
  5. * @date: 2021/3/7
  6. * @author: cakin
  7. */
  8. public class Queue8 {
  9. // 表示共有多少个皇后
  10. int max = 8;
  11. // 保存皇后放置的位置,比如 arr = {0 , 4, 7, 5, 2, 6, 1, 3} 就是一种摆法方法
  12. int[] array = new int[max];
  13. // 解法个数
  14. static int count = 0;
  15. // 判断冲突次数
  16. static int judgeCount = 0;
  17. public static void main(String[] args) {
  18. Queue8 queue8 = new Queue8();
  19. queue8.check(0);
  20. System.out.printf("一共有%d解法,", count); // 92种
  21. System.out.printf("一共判断冲突的次数%d次", judgeCount); // 15720次
  22. }
  23. /**
  24. * 功能描述:放置第n个皇后
  25. *
  26. * @param n 放置第几个皇后
  27. * @author cakin
  28. * @date 2021/3/7
  29. * @description: 特别注意: check 是 每一次递归时,进入到check中都有 for(int i = 0; i < max; i++),因此会有回溯
  30. */
  31. private void check(int n) {
  32. if (n == max) { // 当 n = 8 时, 其实8个皇后已经放好了
  33. print();
  34. return;
  35. }
  36. // 依次放入皇后,并判断是否冲突,i++表示第n个皇后的第i列已经放过了,再放第i+1个列,也就是说当前行的所有列都要探一遍
  37. for (int i = 0; i < max; i++) {
  38. // 先把当前这个皇后n, 放到该行的第1列,然后依次放到第2、3、4...列
  39. array[n] = i;
  40. // 判断当放置第n个皇后到i列时,是否冲突
  41. if (judge(n)) { // 如果不冲突,就接着放第n+1个皇后,开始递归
  42. check(n + 1);
  43. }
  44. }
  45. }
  46. /**
  47. * 功能描述:当我们放置第n个皇后时, 就去检测该皇后是否和前面已经摆放的皇后冲突
  48. *
  49. * @param n 表示第n个皇后
  50. * @return boolean:false:表示冲突 true:表示不冲突
  51. * @author cakin
  52. * @date 2021/3/7
  53. */
  54. private boolean judge(int n) {
  55. judgeCount++;
  56. for (int i = 0; i < n; i++) {
  57. // 1 array[i] == array[n],用于判断第n个皇后是否和第i个皇后在同一列。
  58. // 2 Math.abs(n-i) == Math.abs(array[n] - array[i]),用于判断第n个皇后和第i皇后是否在同一斜线。原理:两个点的横坐标之差和纵坐标之差相等,则在同一斜线。
  59. // 3 判断是否在同一行, 没有必要,n 其实就是横坐标的位置,肯定不一样。
  60. if (array[i] == array[n] || Math.abs(n - i) == Math.abs(array[n] - array[i])) {
  61. return false;
  62. }
  63. }
  64. return true;
  65. }
  66. /**
  67. * 功能描述:皇后摆放的位置输出
  68. *
  69. * @author cakin
  70. * @date 2021/3/7
  71. */
  72. private void print() {
  73. count++;
  74. for (int i = 0; i < array.length; i++) {
  75. System.out.print(array[i] + " ");
  76. }
  77. System.out.println();
  78. }
  79. }

六 测试

  1. 0 4 7 5 2 6 1 3
  2. 0 5 7 2 6 3 1 4
  3. 0 6 3 5 7 1 4 2
  4. 0 6 4 7 1 3 5 2
  5. 1 3 5 7 2 0 6 4
  6. 1 4 6 0 2 7 5 3
  7. 1 4 6 3 0 7 5 2
  8. 1 5 0 6 3 7 2 4
  9. 1 5 7 2 0 3 6 4
  10. 1 6 2 5 7 4 0 3
  11. 1 6 4 7 0 3 5 2
  12. 1 7 5 0 2 4 6 3
  13. 2 0 6 4 7 1 3 5
  14. 2 4 1 7 0 6 3 5
  15. 2 4 1 7 5 3 6 0
  16. 2 4 6 0 3 1 7 5
  17. 2 4 7 3 0 6 1 5
  18. 2 5 1 4 7 0 6 3
  19. 2 5 1 6 0 3 7 4
  20. 2 5 1 6 4 0 7 3
  21. 2 5 3 0 7 4 6 1
  22. 2 5 3 1 7 4 6 0
  23. 2 5 7 0 3 6 4 1
  24. 2 5 7 0 4 6 1 3
  25. 2 5 7 1 3 0 6 4
  26. 2 6 1 7 4 0 3 5
  27. 2 6 1 7 5 3 0 4
  28. 2 7 3 6 0 5 1 4
  29. 3 0 4 7 1 6 2 5
  30. 3 0 4 7 5 2 6 1
  31. 3 1 4 7 5 0 2 6
  32. 3 1 6 2 5 7 0 4
  33. 3 1 6 2 5 7 4 0
  34. 3 1 6 4 0 7 5 2
  35. 3 1 7 4 6 0 2 5
  36. 3 1 7 5 0 2 4 6
  37. 3 5 0 4 1 7 2 6
  38. 3 5 7 1 6 0 2 4
  39. 3 5 7 2 0 6 4 1
  40. 3 6 0 7 4 1 5 2
  41. 3 6 2 7 1 4 0 5
  42. 3 6 4 1 5 0 2 7
  43. 3 6 4 2 0 5 7 1
  44. 3 7 0 2 5 1 6 4
  45. 3 7 0 4 6 1 5 2
  46. 3 7 4 2 0 6 1 5
  47. 4 0 3 5 7 1 6 2
  48. 4 0 7 3 1 6 2 5
  49. 4 0 7 5 2 6 1 3
  50. 4 1 3 5 7 2 0 6
  51. 4 1 3 6 2 7 5 0
  52. 4 1 5 0 6 3 7 2
  53. 4 1 7 0 3 6 2 5
  54. 4 2 0 5 7 1 3 6
  55. 4 2 0 6 1 7 5 3
  56. 4 2 7 3 6 0 5 1
  57. 4 6 0 2 7 5 3 1
  58. 4 6 0 3 1 7 5 2
  59. 4 6 1 3 7 0 2 5
  60. 4 6 1 5 2 0 3 7
  61. 4 6 1 5 2 0 7 3
  62. 4 6 3 0 2 7 5 1
  63. 4 7 3 0 2 5 1 6
  64. 4 7 3 0 6 1 5 2
  65. 5 0 4 1 7 2 6 3
  66. 5 1 6 0 2 4 7 3
  67. 5 1 6 0 3 7 4 2
  68. 5 2 0 6 4 7 1 3
  69. 5 2 0 7 3 1 6 4
  70. 5 2 0 7 4 1 3 6
  71. 5 2 4 6 0 3 1 7
  72. 5 2 4 7 0 3 1 6
  73. 5 2 6 1 3 7 0 4
  74. 5 2 6 1 7 4 0 3
  75. 5 2 6 3 0 7 1 4
  76. 5 3 0 4 7 1 6 2
  77. 5 3 1 7 4 6 0 2
  78. 5 3 6 0 2 4 1 7
  79. 5 3 6 0 7 1 4 2
  80. 5 7 1 3 0 6 4 2
  81. 6 0 2 7 5 3 1 4
  82. 6 1 3 0 7 4 2 5
  83. 6 1 5 2 0 3 7 4
  84. 6 2 0 5 7 4 1 3
  85. 6 2 7 1 4 0 5 3
  86. 6 3 1 4 7 0 2 5
  87. 6 3 1 7 5 0 2 4
  88. 6 4 2 0 5 7 1 3
  89. 7 1 3 0 6 4 2 5
  90. 7 1 4 2 0 6 3 5
  91. 7 2 0 5 1 4 6 3
  92. 7 3 0 2 5 1 6 4
  93. 一共有92解法,一共判断冲突的次数15720

七 七皇后测试

将max改为7

  1. 0 2 4 6 1 3 5
  2. 0 3 6 2 5 1 4
  3. 0 4 1 5 2 6 3
  4. 0 5 3 1 6 4 2
  5. 1 3 0 6 4 2 5
  6. 1 3 5 0 2 4 6
  7. 1 4 0 3 6 2 5
  8. 1 4 2 0 6 3 5
  9. 1 4 6 3 0 2 5
  10. 1 5 2 6 3 0 4
  11. 1 6 4 2 0 5 3
  12. 2 0 5 1 4 6 3
  13. 2 0 5 3 1 6 4
  14. 2 4 6 1 3 5 0
  15. 2 5 1 4 0 3 6
  16. 2 6 1 3 5 0 4
  17. 2 6 3 0 4 1 5
  18. 3 0 2 5 1 6 4
  19. 3 0 4 1 5 2 6
  20. 3 1 6 4 2 0 5
  21. 3 5 0 2 4 6 1
  22. 3 6 2 5 1 4 0
  23. 3 6 4 1 5 0 2
  24. 4 0 3 6 2 5 1
  25. 4 0 5 3 1 6 2
  26. 4 1 5 2 6 3 0
  27. 4 2 0 5 3 1 6
  28. 4 6 1 3 5 0 2
  29. 4 6 1 5 2 0 3
  30. 5 0 2 4 6 1 3
  31. 5 1 4 0 3 6 2
  32. 5 2 0 3 6 4 1
  33. 5 2 4 6 0 3 1
  34. 5 2 6 3 0 4 1
  35. 5 3 1 6 4 2 0
  36. 5 3 6 0 2 4 1
  37. 6 1 3 5 0 2 4
  38. 6 2 5 1 4 0 3
  39. 6 3 0 4 1 5 2
  40. 6 4 2 0 5 3 1
  41. 一共有40解法,一共判断冲突的次数3584
  42. Process finished with exit code 0

八 九皇后测试

将max改为9

  1. 0 2 5 7 1 3 8 6 4
  2. 0 2 6 1 7 4 8 3 5
  3. 0 2 7 5 8 1 4 6 3
  4. 0 3 1 7 5 8 2 4 6
  5. 0 3 5 2 8 1 7 4 6
  6. 0 3 5 7 1 4 2 8 6
  7. 0 3 6 2 7 1 4 8 5
  8. 0 3 6 8 1 4 7 5 2
  9. 0 3 7 2 8 6 4 1 5
  10. 0 4 1 5 8 2 7 3 6
  11. 0 4 6 1 5 2 8 3 7
  12. 0 4 6 8 2 7 1 3 5
  13. 0 4 6 8 3 1 7 5 2
  14. 0 4 8 1 5 7 2 6 3
  15. 0 4 8 5 3 1 7 2 6
  16. 0 5 1 8 6 3 7 2 4
  17. 0 5 3 1 6 8 2 4 7
  18. 0 5 3 1 7 2 8 6 4
  19. 0 5 7 2 6 3 1 8 4
  20. 0 5 7 4 1 3 8 6 2
  21. 0 5 8 4 1 7 2 6 3
  22. 0 6 3 5 8 1 4 2 7
  23. 0 6 3 7 2 4 8 1 5
  24. 0 6 3 7 2 8 5 1 4
  25. 0 6 4 7 1 8 2 5 3
  26. 0 7 3 1 6 8 5 2 4
  27. 0 7 4 2 5 8 1 3 6
  28. 0 7 4 2 8 6 1 3 5
  29. 1 3 0 6 8 5 2 4 7
  30. 1 3 6 0 2 8 5 7 4
  31. 1 3 7 2 8 5 0 4 6
  32. 1 3 8 6 2 0 5 7 4
  33. 1 3 8 6 4 2 0 5 7
  34. 1 4 6 0 2 7 5 3 8
  35. 1 4 6 3 0 2 8 5 7
  36. 1 4 6 8 2 5 3 0 7
  37. 1 4 6 8 3 7 0 2 5
  38. 1 4 7 0 2 5 8 6 3
  39. 1 4 7 0 8 5 2 6 3
  40. 1 4 7 5 8 2 0 3 6
  41. 1 4 7 5 8 2 0 6 3
  42. 1 4 8 3 0 7 5 2 6
  43. 1 5 0 2 6 8 3 7 4
  44. 1 5 0 6 3 7 2 4 8
  45. 1 5 0 6 4 2 8 3 7
  46. 1 5 0 8 4 7 3 6 2
  47. 1 5 2 0 7 3 8 6 4
  48. 1 5 8 2 4 7 3 0 6
  49. 1 6 4 0 8 3 5 7 2
  50. 1 6 4 7 0 3 5 2 8
  51. 1 6 8 5 2 0 3 7 4
  52. 1 7 0 3 6 8 5 2 4
  53. 1 7 4 2 8 5 3 0 6
  54. 1 7 5 8 2 0 3 6 4
  55. 1 8 4 2 7 3 6 0 5
  56. 1 8 5 2 4 7 0 3 6
  57. 1 8 5 2 6 3 0 7 4
  58. 1 8 5 3 6 0 2 4 7
  59. 2 0 3 6 8 1 4 7 5
  60. 2 0 5 7 4 1 3 8 6
  61. 2 0 6 1 7 5 3 8 4
  62. 2 0 6 4 7 1 3 5 8
  63. 2 0 7 3 8 6 4 1 5
  64. 2 0 8 6 4 1 7 5 3
  65. 2 4 1 7 0 3 6 8 5
  66. 2 4 1 7 0 6 3 5 8
  67. 2 4 6 0 3 1 7 5 8
  68. 2 4 7 1 8 5 0 6 3
  69. 2 4 7 1 8 6 0 3 5
  70. 2 4 8 1 3 6 0 7 5
  71. 2 4 8 3 0 6 1 5 7
  72. 2 5 1 6 0 3 7 4 8
  73. 2 5 1 8 4 0 7 3 6
  74. 2 5 7 0 3 6 4 1 8
  75. 2 5 7 0 4 8 1 3 6
  76. 2 5 7 1 3 8 6 4 0
  77. 2 5 7 4 0 8 6 1 3
  78. 2 5 7 4 1 8 6 3 0
  79. 2 5 8 0 7 3 1 6 4
  80. 2 5 8 1 4 6 3 0 7
  81. 2 5 8 1 7 0 3 6 4
  82. 2 5 8 4 7 0 3 1 6
  83. 2 5 8 6 0 3 1 4 7
  84. 2 5 8 6 1 3 7 0 4
  85. 2 5 8 6 3 0 7 1 4
  86. 2 6 1 3 7 0 4 8 5
  87. 2 6 1 7 4 8 0 5 3
  88. 2 6 1 7 5 3 0 4 8
  89. 2 6 3 1 8 4 0 7 5
  90. 2 6 3 1 8 5 0 4 7
  91. 2 6 3 7 4 8 0 5 1
  92. 2 6 8 0 4 1 7 5 3
  93. 2 6 8 3 1 4 7 5 0
  94. 2 7 1 3 8 6 4 0 5
  95. 2 7 3 6 8 1 4 0 5
  96. 2 7 5 0 8 1 4 6 3
  97. 2 7 5 3 8 0 4 6 1
  98. 2 7 5 8 1 4 0 3 6
  99. 2 8 1 4 7 0 6 3 5
  100. 2 8 3 0 7 5 1 6 4
  101. 2 8 3 1 7 5 0 6 4
  102. 2 8 3 7 4 1 5 0 6
  103. 2 8 5 1 4 6 0 3 7
  104. 2 8 5 3 0 6 4 1 7
  105. 2 8 5 7 1 3 0 6 4
  106. 3 0 2 5 8 1 7 4 6
  107. 3 0 4 1 8 6 2 7 5
  108. 3 0 4 7 1 6 2 5 8
  109. 3 0 4 8 1 5 7 2 6
  110. 3 0 6 8 1 5 7 2 4
  111. 3 0 8 5 2 6 1 7 4
  112. 3 1 4 7 0 2 5 8 6
  113. 3 1 6 2 0 7 4 8 5
  114. 3 1 6 8 0 4 7 5 2
  115. 3 1 6 8 0 7 4 2 5
  116. 3 1 7 2 8 6 4 0 5
  117. 3 1 8 2 5 7 0 4 6
  118. 3 1 8 4 0 7 5 2 6
  119. 3 5 0 4 1 7 2 6 8
  120. 3 5 0 8 4 7 1 6 2
  121. 3 5 0 8 6 2 7 1 4
  122. 3 5 2 8 1 4 7 0 6
  123. 3 5 2 8 1 7 4 6 0
  124. 3 5 2 8 6 0 7 1 4
  125. 3 5 7 1 4 0 8 6 2
  126. 3 5 7 1 4 6 8 0 2
  127. 3 5 7 1 6 0 2 4 8
  128. 3 5 7 2 0 6 4 1 8
  129. 3 5 8 2 0 7 1 4 6
  130. 3 6 0 2 8 5 7 4 1
  131. 3 6 0 5 8 1 7 4 2
  132. 3 6 0 7 4 1 8 2 5
  133. 3 6 2 5 8 0 7 4 1
  134. 3 6 2 7 1 4 8 5 0
  135. 3 6 2 7 5 0 8 1 4
  136. 3 6 2 7 5 1 8 4 0
  137. 3 6 4 1 8 0 2 7 5
  138. 3 6 4 1 8 0 5 7 2
  139. 3 6 4 1 8 5 7 2 0
  140. 3 6 8 1 4 7 0 2 5
  141. 3 6 8 1 5 0 2 4 7
  142. 3 6 8 5 2 0 7 4 1
  143. 3 7 0 4 6 1 5 2 8
  144. 3 7 4 2 0 5 1 8 6
  145. 3 7 4 2 0 6 1 5 8
  146. 3 8 2 5 1 6 4 0 7
  147. 3 8 4 2 0 5 7 1 6
  148. 3 8 4 2 0 6 1 7 5
  149. 3 8 4 7 0 2 5 1 6
  150. 4 0 5 3 1 7 2 8 6
  151. 4 0 7 3 1 6 8 5 2
  152. 4 0 7 5 2 6 1 3 8
  153. 4 1 3 0 6 8 2 5 7
  154. 4 1 3 8 6 2 0 5 7
  155. 4 1 5 0 2 6 8 3 7
  156. 4 1 5 8 2 7 3 6 0
  157. 4 1 5 8 6 3 0 2 7
  158. 4 1 7 0 3 6 8 5 2
  159. 4 1 7 0 6 8 2 5 3
  160. 4 1 7 2 6 3 0 8 5
  161. 4 1 7 2 6 8 0 5 3
  162. 4 1 8 0 5 7 2 6 3
  163. 4 1 8 5 2 6 3 0 7
  164. 4 2 0 5 1 8 6 3 7
  165. 4 2 0 5 7 1 3 6 8
  166. 4 2 0 6 1 7 5 3 8
  167. 4 2 5 8 1 7 0 3 6
  168. 4 2 5 8 6 0 3 1 7
  169. 4 2 5 8 6 1 3 7 0
  170. 4 2 5 8 6 3 0 7 1
  171. 4 2 7 3 1 8 5 0 6
  172. 4 2 7 3 6 8 1 5 0
  173. 4 2 7 5 1 8 0 3 6
  174. 4 2 7 5 1 8 6 0 3
  175. 4 2 8 3 1 7 5 0 6
  176. 4 2 8 5 7 1 3 0 6
  177. 4 6 0 3 1 7 5 8 2
  178. 4 6 0 5 7 1 3 8 2
  179. 4 6 1 3 7 0 2 8 5
  180. 4 6 1 3 7 0 8 5 2
  181. 4 6 1 5 2 0 7 3 8
  182. 4 6 1 5 7 0 3 8 2
  183. 4 6 3 0 2 5 8 1 7
  184. 4 6 3 0 2 7 5 1 8
  185. 4 6 3 0 2 8 5 7 1
  186. 4 6 3 0 7 1 8 5 2
  187. 4 6 8 2 7 1 3 5 0
  188. 4 6 8 3 1 7 5 2 0
  189. 4 6 8 3 7 0 2 5 1
  190. 4 7 0 3 6 2 5 8 1
  191. 4 7 0 8 3 1 6 2 5
  192. 4 7 1 6 2 0 8 3 5
  193. 4 7 1 6 2 5 8 0 3
  194. 4 7 1 8 2 0 6 3 5
  195. 4 7 1 8 5 2 0 3 6
  196. 4 7 3 0 2 5 8 6 1
  197. 4 7 3 0 6 1 5 2 8
  198. 4 7 3 8 6 2 0 5 1
  199. 4 7 5 0 2 6 8 3 1
  200. 4 7 5 8 2 0 6 3 1
  201. 4 8 1 3 6 2 7 5 0
  202. 4 8 1 5 7 2 0 3 6
  203. 4 8 3 5 7 1 6 0 2
  204. 5 0 4 1 8 6 3 7 2
  205. 5 0 4 6 8 2 7 1 3
  206. 5 0 4 6 8 3 1 7 2
  207. 5 0 6 3 7 2 4 8 1
  208. 5 1 4 6 8 2 7 3 0
  209. 5 1 4 6 8 3 7 0 2
  210. 5 1 8 4 2 7 3 6 0
  211. 5 2 0 3 6 8 1 4 7
  212. 5 2 0 7 3 8 6 4 1
  213. 5 2 0 7 4 1 8 6 3
  214. 5 2 4 7 0 3 1 6 8
  215. 5 2 4 7 0 8 3 1 6
  216. 5 2 4 7 0 8 6 1 3
  217. 5 2 6 1 3 7 0 4 8
  218. 5 2 6 1 3 8 0 7 4
  219. 5 2 6 1 7 4 0 3 8
  220. 5 2 6 3 0 8 1 4 7
  221. 5 2 8 1 4 7 0 6 3
  222. 5 2 8 3 0 7 1 4 6
  223. 5 2 8 6 0 3 1 4 7
  224. 5 3 0 6 8 1 7 4 2
  225. 5 3 1 6 8 2 4 7 0
  226. 5 3 1 7 2 8 6 4 0
  227. 5 3 1 7 4 2 0 8 6
  228. 5 3 1 7 4 8 0 2 6
  229. 5 3 6 0 2 8 1 7 4
  230. 5 3 6 0 7 1 4 2 8
  231. 5 3 6 0 7 4 1 8 2
  232. 5 3 8 0 2 6 1 7 4
  233. 5 3 8 0 4 1 7 2 6
  234. 5 3 8 4 7 1 6 2 0
  235. 5 7 0 4 8 1 3 6 2
  236. 5 7 0 6 3 1 8 4 2
  237. 5 7 1 6 0 2 4 8 3
  238. 5 7 2 0 8 1 4 6 3
  239. 5 7 2 0 8 4 1 3 6
  240. 5 7 2 6 8 1 4 0 3
  241. 5 7 4 1 8 6 3 0 2
  242. 5 8 0 3 6 2 7 1 4
  243. 5 8 2 0 7 3 1 6 4
  244. 5 8 4 0 7 3 1 6 2
  245. 5 8 4 1 7 2 6 3 0
  246. 5 8 4 7 0 2 6 1 3
  247. 5 8 6 3 0 7 1 4 2
  248. 6 0 3 1 7 5 8 2 4
  249. 6 0 3 5 8 2 4 7 1
  250. 6 0 3 7 4 2 8 5 1
  251. 6 0 5 1 4 7 3 8 2
  252. 6 0 5 7 1 3 8 2 4
  253. 6 0 5 8 1 3 7 2 4
  254. 6 0 7 4 1 8 2 5 3
  255. 6 1 3 0 7 4 8 5 2
  256. 6 1 3 5 0 8 4 2 7
  257. 6 1 3 8 0 7 4 2 5
  258. 6 1 5 2 0 7 4 8 3
  259. 6 1 7 5 0 2 4 8 3
  260. 6 2 0 5 7 4 1 3 8
  261. 6 2 0 8 4 7 1 3 5
  262. 6 2 5 1 4 0 8 3 7
  263. 6 2 5 7 0 3 8 4 1
  264. 6 2 5 7 0 4 8 1 3
  265. 6 2 7 1 3 5 8 4 0
  266. 6 2 7 1 4 0 8 3 5
  267. 6 2 7 5 1 8 4 0 3
  268. 6 3 0 2 5 8 1 7 4
  269. 6 3 0 2 7 5 1 8 4
  270. 6 3 0 2 8 5 7 4 1
  271. 6 3 0 4 1 8 5 7 2
  272. 6 3 0 7 1 8 5 2 4
  273. 6 3 0 7 4 2 5 8 1
  274. 6 3 0 8 1 5 7 2 4
  275. 6 3 1 4 7 0 2 5 8
  276. 6 3 1 4 8 0 2 7 5
  277. 6 3 1 7 5 0 2 4 8
  278. 6 3 1 8 4 0 7 5 2
  279. 6 3 1 8 5 2 4 7 0
  280. 6 3 7 0 4 8 1 5 2
  281. 6 3 7 2 8 5 1 4 0
  282. 6 4 0 5 8 2 7 3 1
  283. 6 4 0 7 5 2 8 1 3
  284. 6 4 1 7 0 2 8 5 3
  285. 6 4 1 7 0 3 8 2 5
  286. 6 4 2 8 5 7 1 3 0
  287. 6 4 7 1 8 2 5 3 0
  288. 6 4 7 1 8 5 2 0 3
  289. 6 8 0 2 4 7 1 3 5
  290. 6 8 1 5 0 2 4 7 3
  291. 6 8 2 4 1 7 5 3 0
  292. 6 8 2 7 1 3 5 0 4
  293. 6 8 3 1 4 7 5 0 2
  294. 6 8 5 2 0 7 4 1 3
  295. 7 0 3 5 2 8 6 4 1
  296. 7 0 3 6 2 5 8 1 4
  297. 7 0 3 6 4 1 8 5 2
  298. 7 0 4 6 1 5 2 8 3
  299. 7 1 3 0 6 8 5 2 4
  300. 7 1 4 6 0 3 5 8 2
  301. 7 1 8 5 2 0 3 6 4
  302. 7 2 0 3 6 8 5 1 4
  303. 7 2 4 1 8 5 3 6 0
  304. 7 2 4 8 0 5 3 1 6
  305. 7 3 0 6 4 1 5 8 2
  306. 7 3 6 8 1 5 0 2 4
  307. 7 3 8 0 4 1 5 2 6
  308. 7 3 8 2 4 6 0 5 1
  309. 7 3 8 2 5 1 6 4 0
  310. 7 3 8 6 2 0 5 1 4
  311. 7 4 0 5 8 1 3 6 2
  312. 7 4 1 3 0 6 8 2 5
  313. 7 4 1 3 0 6 8 5 2
  314. 7 4 1 8 0 3 6 2 5
  315. 7 4 1 8 6 3 0 2 5
  316. 7 4 2 0 5 1 8 6 3
  317. 7 4 2 0 6 3 5 8 1
  318. 7 4 2 5 8 6 0 3 1
  319. 7 4 2 8 6 1 3 5 0
  320. 7 5 0 2 4 6 8 3 1
  321. 7 5 0 2 6 8 3 1 4
  322. 7 5 1 6 0 3 8 4 2
  323. 7 5 2 8 6 0 3 1 4
  324. 7 5 8 2 0 3 6 4 1
  325. 8 1 4 6 0 2 7 5 3
  326. 8 1 4 6 3 0 7 5 2
  327. 8 1 5 7 2 0 3 6 4
  328. 8 2 4 1 7 0 6 3 5
  329. 8 2 5 1 6 0 3 7 4
  330. 8 2 5 1 6 4 0 7 3
  331. 8 2 5 3 0 7 4 6 1
  332. 8 3 0 4 7 1 6 2 5
  333. 8 3 1 4 7 5 0 2 6
  334. 8 3 1 6 2 5 7 0 4
  335. 8 3 5 7 1 6 0 2 4
  336. 8 3 5 7 2 0 6 4 1
  337. 8 3 7 0 2 5 1 6 4
  338. 8 4 0 3 5 7 1 6 2
  339. 8 4 0 7 3 1 6 2 5
  340. 8 4 2 0 5 7 1 3 6
  341. 8 4 2 0 6 1 7 5 3
  342. 8 4 2 7 3 6 0 5 1
  343. 8 4 7 3 0 6 1 5 2
  344. 8 5 1 6 0 2 4 7 3
  345. 8 5 2 0 7 4 1 3 6
  346. 8 5 2 6 1 7 4 0 3
  347. 8 5 3 1 7 4 6 0 2
  348. 8 5 3 6 0 7 1 4 2
  349. 8 5 7 1 3 0 6 4 2
  350. 8 6 1 3 0 7 4 2 5
  351. 8 6 2 7 1 4 0 5 3
  352. 8 6 3 1 7 5 0 2 4
  353. 一共有352解法,一共判断冲突的次数72378
  354. Process finished with exit code 0

发表评论

表情:
评论列表 (有 0 条评论,493人围观)

还没有评论,来说两句吧...

相关阅读

    相关 解决皇后回溯算法

    问题简述:八皇后问题是一个古来而著名的问题,该问题是19世纪著名的数学家高斯同学提出来的。在8\8的国际象棋上摆放八个皇后,使其不能互相的攻击,也就是说,任意的两个皇后不能放在

    相关 --皇后

      八皇后这个典的问题,是每个真正程序员必须经历过的。这也是我第二次来解决这个问题了,第一次应该是学数据结构那时候吧。这次写起来顺利多了,基本没遇到什么卡壳的地方。递归+回溯。