人工智能——搜索(1)回溯策略【N皇后问题】
这学期学《人工智能》(马少平,朱小燕编著)这本书,里面很多算法听老师讲都听不懂,就想试试写一下看看能不能写出来,就从最简单的回溯策略开始吧。源码
题目描述在一个n*n的国际象棋棋盘上,一次一次地摆布n枚皇后,摆好后要满足每行、每列和对角线上只允许出现一枚棋子,即棋子间不许互相俘获。
解题思路使用用递归的方式实现回溯,每一行从左到右填,填不下去就回溯到上一行。以四皇后为例
代码实现递归函数,如果能放下皇后且还没到最后一行,递归进入下一行。
voidNqueens(intnum){inti;for(i=1;i