Traduction

Fermé
Pierre - 16 nov. 2020 à 20:33
 Pierre - 18 nov. 2020 à 12:30
Bonjours j'ai besoin de votre aide j'ai ce code:
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
A voir également:

1 réponse

yg_be Messages postés 22720 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024 1 476
16 nov. 2020 à 20:56
bonjour,
comment en es-tu arrivé à utiliser un code que tu ne comprends pas?
dans quel contexte fais-tu cela?
0
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
0
yg_be Messages postés 22720 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024 1 476 > Pierre
17 nov. 2020 à 20:35
je ne pense pas que c'est ainsi que tu vas apprendre.
essaie d'abord de comprendre du code plus simple.
0
Pierre > yg_be Messages postés 22720 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024
18 nov. 2020 à 12:30
Est t'il possible de le traduire quand meme s'il vous plais j'aurais vraiment besoin de comprendre celui ci
0