Documente Academic
Documente Profesional
Documente Cultură
}
else k--;
}
Stiind ca x1,x2,xk-1 este un prefix int EstePrefixValid(int k, int x[]);
valid (respect deja criteriile impuse),
ce condiii trebuie s ndeplineasc xk,
astfel incat prefixul s fie valid?
Obs se verifica aceste conditii doar
pentru xk, nu si pentru celelalte
elemente, deja testate!
Ce conditii trebuie sa indeplineasca int EsteSolutie (int k, int x[]);
prefixul pentru a fi solutie finala?
Obs de obicei este sufficient sa
verificam daca vectorul a fost completat
(daca toate solutiile au aceeasi
dimensiune)
II. Aplicaii:
1. Problema permutarilor
Sa se gaseasca toate posibilitatile de a aseza cele N elemente ale multimii {1,2,,N};
conteaza ordinea de asezare a elementelor in grupa.
Repere:
a) O solutie este o posibilitate de a aseza cele n elemente
x1, x2, xN
x[k] elementul de pe pozitia k in aceasta asezare
b) x[k] este un element al multimii date, deci x[k]{1,2,N}
c) Validare: elementele trebuie sa fie distincte: pentru x[k]x[i], pentru orice i=1k-1
d) Solutie finala: k=N
2. Problema aranjamentelor
Sa se gaseasca toate posibilitatile de a aseza cele N elemente ale multimii {1,2,,N} in
grupe de cate P elemente; conteaza ordinea de asezare a elementelor in grupa.
Repere:
a) O solutie este o posibilitate de a aseza cele P elemente
x1, x2, xP
x[k] elementul de pe pozitia k in aceasta asezare
b) x[k] este un element al multimii date, deci x[k]{1,2,N}
c) Validare: elementele trebuie sa fie distincte: pentru x[k]x[i], pentru orice i=1k-1
d) Solutie finala: k=P
3. Problema combinarilor
Sa se gaseasca toate posibilitatile de a aseza cele N elemente ale multimii {1,2,,N} in
grupe de cate P elemente; NU conteaza ordinea de asezare a elementelor in grupa.
Repere:
a) O solutie este o posibilitate de a aseza cele P elemente
x1, x2, xP
x[k] elementul de pe pozitia k in aceasta asezare
b) x[k] este un element al multimii date, deci x[k]{1,2,N}