回溯解决方案在Python中显示

时间:2017-06-23 08:52:53

标签: python display solution

我有这个Python代码用于回溯算法。我的问题是这段代码无法显示解决方案。我验证了所有的线路,但似乎一切都好。你知道可以做什么吗?

def bkt(k):
    global n,x
    if k >= n:
        afisare()
    else:
        for i in range(n):
            if posibil(k,i):
                x[k] = i
                bkt(k+1)

def posibil(k,a):
    global x
    for i in range(k):
        if x[i] == a:
            return False
        if abs(x[i]-a)==k-1:
            return False
        else:
            return True

def afisare():
    global n,x,nsol
    nsol+=1
    print('\nSolutia ',nsol, 'x=',x)
    for i in range(n):
        linie = ' '
        for j in range(n):
            if x[j]==i:
                linie+= 'R '
            else:
                linie+= 'X '
            print(linie)

n = int(input('Dati n:'))
nsol = 0
x = [0]*n
bkt(0)

0 个答案:

没有答案