def check(state, nextX):
nextY = len(state)
for i in range(nextY):
if abs(state[i]-nextX) in (0, nextY-i):
return True
return False
def queen(n, state=()):
for one in range(n):
if not check(state, one):
a = state+(one,)
if len(a) == n:
print(a)
else:
queen(n,state=a)
queen(5)
本文探讨了N皇后问题的递归求解方法,并通过Python代码详细展示了如何避免皇后之间的相互攻击,包括在同一行、同一列及对角线上的冲突。代码采用递归回溯的方式,逐个放置皇后并检查其位置的有效性。

被折叠的 条评论
为什么被折叠?



