def queens(i):
n=8
if (promising(i)):
if(i==n):
for col in range(1,n):
print(col)
else:
for j in range (1,n):
col[i+1]=j
i=i+1
def promising(i):
k=1
switch=True
while(k<i and switch):
if(col[i]==col[k] and abs(col[i]-col[k]==i-k)):
switch= False
else:
switch=True
k+=1
return switch
我希望使用反向跟踪来运行n-queens问题。我不知道如何纠正关于col变量的错误,我认为我们需要一些全局变量。
任何人都可以解释如何使用全局变量以及为什么我们得到列表索引超出绑定错误。
答案 0 :(得分:1)
可能是你使用json_decode
但是python是零索引的原因吗?
并且您为变量i添加+1,但这是列向量,因此如果您位于range(1,n)
,i = n
超出范围?
我认为你的第一个职能是错误的。