Problème des 8 dames méthode en profondeur

Signaler
-
Messages postés
12879
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
31 octobre 2020
-
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

2 réponses

Messages postés
12879
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
31 octobre 2020
719
tu peux déjà rendre cela énormément plus efficace en travaillant sur ta fonction test().
Messages postés
12879
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
31 octobre 2020
719
Messages postés
12879
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
31 octobre 2020
719
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
Messages postés
12879
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
31 octobre 2020
719 > 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.