0
Backtracking
1.Sa se plaseze pe o tabla de sah 8 dame astfel incat sa nu se atace reciproc.Sa se genereze toate solutiile.
Comentariu:
Pe fiecare linie trebuie sa stea o singura dama.Procedura pune_dama are ca parametru linia pe care trebuie sa se aseze o dama astfel incat san u fie atacata de damele pozitionate anterior.Pentru fiecare pozitie corecta gasita,procedura se autoapeleaza pentru linia urmatoare.
program dame;
const nmax=20;
var n,i,j:byte;
a:array[1..nmax] of 0..nmax;
nrs:byte;
procedure afis;
var i,j:byte;
begin
for i:=1 to n do begin
for j:=1 to n do
if a[i]=j then write(‘* ‘);
else write(‘0 ‘);
writeln
end;
nrs:=nrs+1;
end;
procedure pune_dama(x:byte);
var I,j,:byte;v:boolean;
begin
if x>n then afis else for i:=1 to n do
begin
v:=true;
for j:=1 to x-1 do
if a[j]=I or abs(j-x)=abs(a[j]-i) then
v:=false;
if v then begin
a[x]:=I;
pune_dama(x+1);
end;
end;
end;
begin
write(‘introduceti dimensiunea tablei de sah:’);readln(n);
nrs:=0;
pune_dama(1);
writeln(‘numarul de solutii :’,nrs);
end.
Comentariu:
Pe fiecare linie trebuie sa stea o singura dama.Procedura pune_dama are ca parametru linia pe care trebuie sa se aseze o dama astfel incat san u fie atacata de damele pozitionate anterior.Pentru fiecare pozitie corecta gasita,procedura se autoapeleaza pentru linia urmatoare.
program dame;
const nmax=20;
var n,i,j:byte;
a:array[1..nmax] of 0..nmax;
nrs:byte;
procedure afis;
var i,j:byte;
begin
for i:=1 to n do begin
for j:=1 to n do
if a[i]=j then write(‘* ‘);
else write(‘0 ‘);
writeln
end;
nrs:=nrs+1;
end;
procedure pune_dama(x:byte);
var I,j,:byte;v:boolean;
begin
if x>n then afis else for i:=1 to n do
begin
v:=true;
for j:=1 to x-1 do
if a[j]=I or abs(j-x)=abs(a[j]-i) then
v:=false;
if v then begin
a[x]:=I;
pune_dama(x+1);
end;
end;
end;
begin
write(‘introduceti dimensiunea tablei de sah:’);readln(n);
nrs:=0;
pune_dama(1);
writeln(‘numarul de solutii :’,nrs);
end.
Вернуться назад »
Категория: Informatica | Просмотров: 340
Похожие новости
- "Aniroc Beauty Salon" S.R.LPlan de afacere
- "Happy Events” S.R.LPlan de afacere
- "Pete albe" în gândirea noastrăPsihologie
Всего комментариев: 0 | |