拉斯维加斯算法解8皇后问题
回溯算法解8皇后问题
num=8
Q_col=[0 for i in range(num)]
Q_row=[i for i in range(num)]
global Counts
Counts=0
def Check(row,col):
# 如果在同一列,该位置不能放
if col in Q_col[:row]:
return 0
# 如果当前位置的斜上方有皇后,在一条斜线上,也不行
if row+col in [Q_row[i]+Q_col[i] for i in range(row)]:
return 0
# 如果当前位置的斜下方有皇后,在一条斜线上,也不行
if row-col in [Q_row[i]-Q_col[i] for i in range(row)]:
return 0
return 1
def printt():
for row in range(num):
for col in range(0,Q_col[row]):
print("0",end='')
print("#",end='')
for col in range(Q_col[row]