以下是我们组的关于用回溯法求解八皇后问题的课程设计报告,里面有一些我们组借鉴算法的部分,希望大家共同学习。
目录
- 问题分析
八皇后问题是使用回溯法解决的典型案例,在解空间中寻找适合约束条件的解状态。选择C语言,算法的解决思路是:
1.从棋盘的第一行开始,从第一个位置开始,依次判断当前位置是否能够放置皇后,判断的依据为:同该行之前的所有行中皇后的所在位置进行比较,如果在同一列,或者在同一条斜线上(斜线有两条,为正方形的两个对角线),都不符合要求,继续 检验后续的位置;
2.如果该行所有位置都不符合要求,则回溯到前一行,改变皇后的位置,继续试探;
3.如果试探到最后一行,所有皇后摆放完毕,则直接打印出8*8的棋盘,最后将棋盘恢复原样,避免影响下一次摆放。