八皇后问题-用Python实现
回溯算法
简述一下基本实现方法:
1.从第一行开始,放置第一个皇后
2.下一行,从第一列开始,依次判断这个位置和已有的皇后位置是否冲突,如果不冲突,放下。
3.如果到这一行的最后一列依然冲突,则返回上一行,并从上一行的位置开始,探索剩余列的可能性。
4.如果到最后一行,解出一个解,记录下以后,返回上一行,继续探索新的解
具体图解可以参考八皇后问题回溯法和迭代法
代码实现(我的- -)
#判断在该位置是否成立
def isright(row,col,k):
if(row in k):
return False
if(col in k.values()):
return False
for i in k:
if(row!=i):
if(abs((col-a[i])/(row-i))==1