Informatică, întrebare adresată de ianamihaela2004, 8 ani în urmă

Se consideră o tablă de șah de dimensiune n. Să se plaseze pe tablă n regine astfel încât să nu existe două regine care să se atace.

4 ≤ n ≤ 10;
două regine se atacă dacă se află pe aceeași linie, aceeași coloană sau aceeași diagonală;
orice configurație validă a tablei este acceptată.

- - * -
* - - -
- - - *
- * - -

Răspunsuri la întrebare

Răspuns de Staniislaw
0

Răspuns:

def regine_bkt(k):

   global n,x

   if k>=n:

       afisSolutie()

   else:

       for alfa in range(n):

           if posibil(k,alfa):

               x[k]=alfa

               regine_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-i:

           return False

   else:

       return True

def afisSolutie():

   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+='.'

       print(linie)

n=4

x=[0]*n

nsol=0

regine_bkt(0)

Explicație:

Alte întrebări interesante