You are on page 1of 4

Colegiul Naional Dimitrie Cantemir Oneti

Test de evaluare clasa a XI-a


Backtracking

1. Utiliznd metoda backtracking se genereaz n ordine lexicografic cuvintele de cte patru litere
din mulimea A={a,b,c,d}, cuvinte care nu conin dou vocale alturate. Primele cinci cuvinte
generate sunt, n ordine: abab, abac, abad, abba, abbb. Care este ultimul cuvnt generat?
a. ddcd
b. dcba
c. abcd
d. dddd

2. O clas de 28 de elevi este la ora de educaie fizic i profesorul dorete s formeze o echip de
4 elevi; ordinea elevilor n cadrul echipei nu are importan. Algoritmul de generare a tuturor
posibilitilor de a forma o asfel de echip este similar cu algoritmul de generare a tuturor:
a. aranjamentelor de 28 de elemente luate cte 4
b. combinrilor de 28 de elemente luate cte 4
c. partiiilor unei mulimi d. elementelor produsului cartezian AxAxAxA, A fiind o mulime cu
28 de elemente

3. La un concurs sportiv sunt 5 echipe, iar n fiecare echip sunt cte 10 elevi. Problema
determinrii tuturor grupelor de cte 5 elevi, cte unul din fiecare echip, este similar cu
generarea tuturor:
a. elementelor produsului cartezian AxAxAxAxA, unde A={1,2,,10}
b. submulimilor cu 5 elemente ale mulimii {1,2,,10}
c. permutrilor mulimii {1,2,3,4,5}
d. partiiilor mulimii {1,2,,10}
4. Un program construiete i afieaz elementele produsului cartezian AxBxC pentru mulimile
A={1,2,3,4}, B={1,2,3}, C={1,2}. Care dintre urmtoarele triplete NU va fi afiat?
a. (3,2,1)
b. (1,3,2)
c. (1,2,3)
d. (2,2,2)

5. Se genereaz n ordine cresctoare toate numerele de 4 cifre, cu cifre distincte, astfel nct
diferena n valoare absolut dintre ultimele dou cifre ale fiecrui numr generat este egal cu 2.
Colegiul Naional Dimitrie Cantemir Oneti
Primele opt soluii generate sunt, n ordine:1024, 1035, 1042, 1046, 1053, 1057, 1064, 1068.
Care dintre urmtoarele numere se va genera imediat dup numrul 8975?
a. 8979
b. 9013
c. 8957
d. 9024

6. Se genereaz n ordine cresctoare toate numerele de exact 4 cifre care se pot forma cu
elementele mulimii {0,1,2,3,4}. Primele 8 soluii generate sunt, n ordine: 1000, 1001, 1002,
1003, 1004, 1010, 1011, 1012. Care sunt primele trei numere ce se vor genera imediat dup
numrul 3443?
a. 4000,4001,4002
b. 3444,4443,4444
c. 3444,4444,4000
d. 3444,4000,4001

7. Utiliznd metoda backtracking se genereaz permutrile cuvntului info. Dac primele trei soluii
generate sunt: fino, fion, fnio care este cea de-a cincea soluie?
a. foin
b. fnoi
c. foni
d. ifon

8. Genernd irurile de maximum 3 caractere distincte din mulimea {A,B,C,D,E}, ordonate
lexicografic, obinem succesiv: A, AB, ABC, ABD,. Ce ir va fi generat dup CBE?
a. CDA
b. DAC
c. CD
d. CEB








Colegiul Naional Dimitrie Cantemir Oneti
9. Utiliznd metoda backtracking se genereaz n ordine descresctoare numere de exact n cifre
pare distincte. Pentru n=3 soluiile generate sunt: 864, 862, 860, 846, , 208, 206, 204. Care
dintre variantele de mai jos nlocuiete secvena de instruciuni a.. programul s genereze
aceste numere.

#include <iostream>
using namespace std;
int x[10],n,p;

void afisare()
{
for (int i=0;i<n;i++)
cout<<x[i]<<" ";
cout <<endl;
}

int valid(int k)
{
if (k==0 && x[k]==0) return 0;
if (x[k]%2) return 0;
for (int i=0;i<k;i++)
if (x[k]==x[i]) return 0;
return 1;
}

void back()
{

}

int main()
{
cout<<"Dati n:";cin>>n;
back();
return 0;
}






Colegiul Naional Dimitrie Cantemir Oneti

a. int k,gasit;
k=0;
x[k]=0;
while(k>=0)
{
gasit=0;
while (!gasit && (x[k]<9))
{
x[k]++;
if (valid(k)) gasit=1;
}
if (gasit)
if (k==n-1)
afisare();
else
{
k++;
x[k]=0;
}
else k--;
}

b. int k,gasit;
k=0;
x[k]=10;
while(k>=0)
{
gasit=0;
while (!gasit && (x[k]>0))
{
x[k]--;
if (valid(k)) gasit=1;
}
if (gasit)
if (k==n-1)
afisare();
else
{
k++;
x[k]=10;
}
else k--;
}


c. int k,gasit;
k=0;
x[k]=0;
while(k>=0)
{
gasit=0;
while (!gasit && (x[k]>0))
{
x[k]++;
if (valid(k)) gasit=1;
}
if (gasit)
if (k==n-1)
afisare();
else
{
k++;
x[k]=0;
}
else k--;
}

d. int k,gasit;
k=0;
x[k]=10;
while(k>=0)
{
gasit=0;
while (!gasit && (x[k]<9))
{
x[k]--;
if (valid(k)) gasit=1;
}
if (gasit)
if (k==n-1)
afisare();
else
{
k++;
x[k]=10;
}
else k--;
}

You might also like