在一个N*N的国际棋盘上,放置N个皇后,使她们相互之间不能进攻(任意两皇后不能位置同一行、同一列、同一斜线)。 因为每行只有一个皇后,我们可以用一行N个数值来表示N*N棋盘上皇后位置。 结果中第i列的数值j表示棋盘上第[i,j]位置上有一个皇后。 2 4 6 1 3 5 表示棋盘上第[1,2]、[2,4]、[3,6]、[4,1]、[5,3]、[6,5]位置上有一个皇后。
时间: 2023-06-03 12:03:49 浏览: 66
n皇后问题C语言实现:在n*n的棋盘上放置n个皇后,要求皇后两两互斥,即任意两个皇后不能出现在同一行、同一列或同一条斜对角线上。 试求出所有的合法布局。
5星 · 资源好评率100%
这是一个典型的八皇后问题,可以使用回溯算法来求解。具体方法是从第一行开始,对于每一列依次尝试放置皇后,判断是否与之前的皇后冲突,如果没有冲突则继续尝试下一行,否则回溯到上一行重新选择位置。当所有皇后都被放置时得到一个解,记录下来后继续尝试其他可能的位置。重复这个过程直到找到所有解或者无解。
阅读全文