[关闭]
@lingdantiancai 2016-04-21T04:34:17.000000Z 字数 619 阅读 230

八皇后的一些见解

Python,八皇后


昨天看到八皇后这个问题,看了俩天,终于觉得有点头绪了。(我是菜鸟,俩天才看会,(:)

就像这个图一样

- 自我理解的算法结构。

- 设置元组存储位置

首先设置一个元组state[],这里存储所有皇后的位置。

- 然后定义一个冲突检测类。

给这个类传入上一个皇后的位置信息和将要传入皇后的列坐标位置。
先计算这是第几个皇后len(state)然后判断将要传入的皇后位置是不是与已经排好的皇后在同一行或者在同一对角线上。

接下来让我们直接考虑最后一个皇后的位置怎么排放。便利所有可能位置。
def queens(num, state):
if len(state) == num - 1:
for pos in range(num):
if not conflict(state, pos):
yield pos

- 回溯计算,然后便可大功告成

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注