BluePink BluePink
XHost
Oferim servicii de instalare, configurare si monitorizare servere linux (router, firewall, dns, web, email, baze de date, aplicatii, server de backup, domain controller, share de retea) de la 50 eur / instalare. Pentru detalii accesati site-ul BluePink.

Backtracking


Program aranjamente;

const nmax=25;

type vector=array[1..nmax] of integer

var x:vector; n:integer;

Procedure CITIRE;

begin

  write('n=');readln(n);

end;

Procedure INIT(k:integer);

begin

  x[k]:=0;

end;

Procedure EXISTA(k:integer):boolean;

begin

  EXISTA:=(x[k]'<'n);

end;

Function CONT(k:integer):boolean;

var i:integer;

begin

  CONT:=TRUE;

   for i:=1 to k-1 do

    if x[i]=x[k] then

     CONT:=FALSE;

end;

Function SOLUTIE(k:integer):boolean;

begin

   SOLUTIE:=(k=n);

end;

Procedure TIPAR(k:integer);

var i:integer;

begin

   for i:=1 to k do

  write(x[i]:3);

end;

Procedure BKT;

var k:integer;

begin

   k:=1;

   INIT(k);

   while k'>'0 do

    if EXISTA(k) then

     begin

      x[k]:=x[k]+1;

      if CONT(k) then

      if SOLUTIE(k) then

      TIPAR(k)

     else

    begin

     k:=k+1;

     INIT(k);

    end;

    end

    else

     k:=k-1;

end;

begin{p.p}

CITIRE;

BKT;

readln;

end.


   Programul de generare al aranjamentelor utilizeaza o procedura bkt formata din urmatoarele subprograme

-Procedure INIT-initializeaza elementul k cu 0 in acest element a se genera solutiile

-Function EXISTA-care verifica daca generarea elementelor are sens adica x[k]'<'n

-Function CONT-verifica conditiile interne degenararea vectorului prin valoarea fiecarui element cu predecesorii sai

-Function SOLUTIE-valideaza un vector solutia urmand criteriul k=n.Daca este verificat si CONT si EXISTA inseamna ca avem o solutie valida

-Procedure TIPAR-are sens la existenta unui termen valid

-Programul Principal contine un subprogram de incarcare a elementului n si a apel de procedura bkt,apel care va genera permutari de n elemente

   Aceasta tehnica utilizata pentru generarea aranjamentelor poate fi utilizata si pentru probleme de combinatorica a cum ar fi generarea permutarilor si generarea combinarilor