Documente Academic
Documente Profesional
Documente Cultură
C.N.”Al.I.Cuza” Ploiesti
Backtracking
• Backtracking este o metodă de
parcurgere sistematică a spaţiului soluţiilor
posibile al unei probleme.
• Este o metodă generală de programare, şi
poate fi adaptă pentru orice problemă
pentru care dorim să obţinem toate
soluţiile posibile, sau să selectăm o soluţie
optimă, din mulţimea soluţiilor posibile.
Ce este un pătrat magic?
rombului și se 21 17 13 9 5
urmează în formă 22 18 14 10
oblică ca și în 23 19 15
exemplu. 24 20
• Pătratul magic va fi 25
în casuțele goale în 11 24 7 20 3
partea opusă a 16 4 12 25 8 16 4
rombului. 21 17 5 13 21 9 5
22 10 18 1 14 22 10
23 6 19 2 15
24 20
25
• Pasul al treilea:
Scoatem colțurile 11 24 7 20 3
rombului: acum avem
un pătrat magic de
4 12 25 8 16
ordin impar.
17 5 13 21 9
10 18 1 14 22
23 6 19 2 15
Enunţul problemei 2:
Să se verifice dacă matricea pătratică ale
cărei elemente sunt introduse de la tastatură
este pătrat magic. Unde, un pătrat magic de
ordinul n este o aranjare de n² numere într-
un pătrat, în așa fel încât toate numerele n
din aceeași coloană, rând sau diagonală să
dea adunate aceeași constantă.
Algoritm
t:=t+1;
var m:array[1..100,1..100] of integer;
lin[t]:= s;
lin,col: array[1..100] of integer;
end;
i:byte;
for i:=1 to n do begin
j:byte;
s:=0;
n,t,y,d1,d2,s:integer;
for j:=1 to n do begin
ok1,ok2:boolean;
s:=s+m[j,i];
end;
begin
y:=y+1;
write ('nr linii si coloane ='); readln(n);
col[y]:=s;
for i:=1 to n do
end;
for j:=1 to n do
begin s:=0;
for i:=1 to n do
write ('[linia',i,'coloana',j,']= '); readln(m[i,j]); end;
s:=s+m[i,i];
t:=0;
d1:=s;
y:=0;
s:=0;
for i:=1 to n do begin
for i:=1 to n do
s:=0;
s:=s+m[i,n-i+1];
for j:=1 to n do begin
s:=s+m[i,j]; d2:=s;
ok1:=false;
end;
for i:=1 to t do
if lin[i]= lin[i+1] then ok1:=true;
if ok1 = false then write('nu e patrat magic')
else begin
ok2:=false;
for i:=1 to y do
if col[i]=col[i+1] then ok2:=true;
if (ok2= true) and (d1=d2) then write ('patrat magic')
else write ('nu e patrat magic'); end;
readln;
end.
Krieb Iulia
Popescu Anseea
Clasa a XI-a A