设计要求与分析.docVIP

  • 6
  • 0
  • 约 6页
  • 2017-08-17 发布于重庆
  • 举报
设计要求与分析.doc

设计要求与分析 ????八皇后问题是在8x8的国际象棋棋盘上,安放8个皇后,要求没有一个皇后能够“吃掉”任何其他一个皇后,即没有两个或两个以上的皇后占据棋盘上的同一行、同一列或同一条对角线。 ????八皇后在棋盘上分布的各种可能的格局,其数目非常大,约等于232种,但是,可以将一些明显不满足问题要求的格局排除掉。由于任意两个皇后不能同行,即每一行只能放置一个皇后,因此将第i个皇后放置在第i行上。这样在放置第i个皇后时,只要考虑它与前i一1个皇后处于不同列和不同对角线位置上即可。因此,其算法基本思想如下: ??????从第1行起逐行放置皇后,每放置一个皇后均需要依次对第1,2,…,8列进行试探, ??并尽可能取小的列数。若当前试探的列位置是安全的,即不与已放置的其他皇后冲突, ??则将该行的列位置保存在栈中,然后继续在下一行上寻找安全位置;若当前试探的列位 ??置不安全,则用下一列进行试探,当8列位置试探完毕都未找到安全位置时,就退栈回 ??溯到上一行,修改栈顶保存的皇后位置,然后继续试探。 ??????该算法抽象描述如下: ??????(1)置当前行当前列均为1; ??????(2)while(当前行号《8) ??????(3){检查当前行,从当前列起逐列试探,寻找安全列号; ??????(4)if(找到安全列号) ??????(5)放置皇后,将列号记入栈

文档评论(0)

1亿VIP精品文档

相关文档