八皇后问题是由国际西洋棋棋手马克斯·贝瑟尔于1848年提出的问题,是回溯算法的典型案例。
问题表述为:在8×8格的国际象棋上摆放8个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。
像这样的棋盘:
对棋盘行和列标号,可以使用 0~7
或 1~8
,通过行数与列数进行加减计算,得到如下的内容:
行 - 列
和 行 +列
,可以清晰的看到具有很明显的规律
行 - 列
,红线的方向,从左到右,从上到下的斜线,取值范围 [-7 , 7]
,,共15个元素
-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,7
行 +列
,红线的方向,从左到右,从下到上的斜线,取值范围 [2