Problème des 8 dames méthode en profondeur

Hugo -  
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour/ Bonsoir j'ai un petit soucis je doit faire un programme pour résoudre le problème des 8 dames j'ai déjà une base qui est celle ci:
from time import time
L=[3,5,0,4,1,7,2,6]
def test(L):
a=True
for i in range(len(L)):
for j in range(i+1,len(L)):
if (abs(L[j]-L[i])/(j-i))==1 or L[i]==L[j]:
a=False
return a
L=[]
compt=0
t1=time()
for i in range (8):
for j in range (8):
for k in range (8):
for l in range (8):
for m in range (8):
for n in range (8):
for o in range (8):
for p in range (8):
L=[i,j,k,l,m,n,o,p]
if test(L):
print(L)
compt+=1
print(compt)
L=[]
t2=time()
print (test(L))

et je doit rendre tout ceci plus efficace en utiliser la méthode en profondeur mais je suis perdu et ne sait pas comment faire merci d'avance pour votre aide
A voir également:

2 réponses

yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 
tu peux déjà rendre cela énormément plus efficace en travaillant sur ta fonction test().
1
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 
0
Hugo
 
Mon but n'est pas d'avoir une réponse toute fait car si je fait quelque chose que je ne comprend pas cela n'as aucun intérêt mon but et de comprendre et d'obtenir des elements qui m'aideront à résoudre mon problème merci quand même de remettre en place les règle
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584 > Hugo
 
je suppose que tu suis une formation qui explique ce concept de méthode en profondeur.
pour ce que j'en comprends, c'est exactement la méthode qui me vient à l'esprit si je voulais réaliser cela sans ordi.
0