回溯法:
特点:
1.该算法使用的是 深度优先策略从根节点触发搜索解空间树
2.每一条求解逻辑如果走不通的时候就会返回至上一个逻辑判断
我们用四皇后问题 解释一遍逻辑:
例如:N皇后问题要求在一个n行n列的棋盘上放置n个皇后,使得皇后彼此之间不受攻击,按照国际象棋的规则,一个皇后可以攻击与之处于同一行或同一列或同一条斜线上的其他任何棋子。 因此,n皇后问题等价于要求在一个n*n格的棋盘上放置n个皇后,使得任意两个皇后不在同一行、列、对角线上。
四皇后图例:
根据图我们会发现:每一个皇后,都会从 第一行从上至下的往下走,并且判断 任意两个皇后不在同一行、列、对角线上。第三个皇后走到最后一行时无解,则回溯,移动第二个皇后,继续从上往下走仍然无解时,回溯到 第一个皇后,以此内推... 可以算出一共有256种可能