Traduction
Bonjours j'ai besoin de votre aide j'ai ce code:
Pourriez vous m'expliquer que fait chaque ligne du programme dumoin les plus importante via un # derrière la ligne en question que je puisse comprendre le fonctionnement de ce code merci d'avance
def diagAscendante(i, j):
j1 = j - min(i, j)-1
for i1 in range(i-min(i,j),min(8,7-j1)):
j1+=1
yield i1, j1
def diagDescendante(i, j):
j1=j+min(i,7-j)+1
for i1 in range(i-min(i,7-j),min(8,j1)):
j1-=1
yield i1, j1
def positionValide(L, l, c):
if not L[l] < 0: return False
try:
z=L.index(c)
return False
except ValueError:
pass
diagonaleAscendante = diagAscendante(l, c)
if any([L[i]==j for i, j in diagonaleAscendante]): return False
diagonaleDescendante = diagDescendante(l, c)
if any([L[i]==j for i, j in diagonaleDescendante]): return False
return True
from time import perf_counter
def backTracking(L, l, c):
while c > 7 and l > 0:
l -= 1
c=L[l]+1
L[l] = -1
if c > 7: return -1, 0
return l, c
T=perf_counter()
S = [] # Liste des solutions.
L = [-1 for _ in range(8)]
l=0
c=0
while l >= 0:
while c < 8:
if not positionValide(L, l, c):
c+=1
else:
L[l] = c
c+=1
l += 1
if l <= 7:
c=0
else:
S.append(L[:])
l -= 1
c+=1
L[l] = -1
l, c = backTracking(L, l, c)
print("Temps: {round(perf_counter()-T, 3)} secondes")
print(len(S))
for i,L in enumerate(S):
print(i+1,": ",*L)
Pourriez vous m'expliquer que fait chaque ligne du programme dumoin les plus importante via un # derrière la ligne en question que je puisse comprendre le fonctionnement de ce code merci d'avance
1 réponse
-
Contributeurbonjour,
comment en es-tu arrivé à utiliser un code que tu ne comprends pas?
dans quel contexte fais-tu cela?-
Enfait j'ai se code d'un ami tout simplement et j'essaye d'apprendre et il me faudrai comprendre ce code voila tout c'est pour cela que je demande de me dire si possible a quoi correspond chaque ligne ou du moinnles grandes lignes merci si tu peut m'aider
-
Contributeur@Pierreje ne pense pas que c'est ainsi que tu vas apprendre.
essaie d'abord de comprendre du code plus simple. -
@yg_beEst t'il possible de le traduire quand meme s'il vous plais j'aurais vraiment besoin de comprendre celui ci
-