Documente Academic
Documente Profesional
Documente Cultură
Generare submulimi
Fie n un numr natural nenul. S se genereze toate submulimile mulimii { 0, 1,
, n-1}.
Soluie
Vom reprezenta submulimile prin vector caracteristic (un vector S cu n
componente 0 sau 1, avnd semnificaia S[i]=1, dac i aparine submulimii i
0 n caz contrar). Problema se reduce astfel la generarea tuturor secvenelor binare
de lungime n.
Pentru a rezolva aceast problem vom utiliza un algoritm de tip succesor.
Mai exact, un astfel de algoritm funcioneaz astfel:
Pas 1. Se iniializeaz soluia cu cea mai mic configuraie posibil (n cazul
nostru, iniializm vectorul S cu 0, ceea ce corespunde mulimii vide);
Pas 2. Ct timp este posibil (exist succesor) se execut:
se afieaz configuraia curent
se genereaz configuraia urmtoare (n cazul nostru, vom considera c
elementele vectorului reprezint cifrele unui numr scris n baza 2, la
care vom aduna 1).
#include <fstream>
#include <iostream>
using namespace std;
#define NMax 100
int n, S[NMax], i, gata = 0;
int main()
{
ofstream fout("subm.out");
cout << "n= "; cin >> n;
for (i = 0; i < n; i++) S[i] = 0; //initializare
while (!gata)
{
//afisam configuratia curenta
for (i = 0; i < n; i++)
if (S[i]) fout << i << ' ';
fout<<\n;
//generam configuratia urmatoare prin adunare binara
for (i = 0; i < n && S[i]; i++) S[i]=0;
if (i == n)
gata = 1; /* este ultima configuratie */
else
S[i] = 1;
}
fout.close();
return 0;
}
24.01.2015
Fie x=(x1, x2, ..., xn) i y=(y1, y2, ..., ym). Spunem c x preced pe y din punct de vedere
lexicografic dac exist k astfel nct xi=yi, pentru orice i<k i xk<yk sau k>n.
24.01.2015
}
fout.close();
return 0;
Mulimi
Se citesc de la tastatur dou mulimi A i B cu n, respectiv m elemente numere
naturale mai mici dect 1000. S se determine intersecia i reuniunea celor dou
mulimi. Implementai mai nti o mulime ca un vector n care memorai
elementele mulimii, apoi prin vector caracteristic. Realizai o comparaie ntre
eficiena implementrii celor dou operaii cu cele dou reprezentri.
Numere
S se genereze toate irurile formate din n cifre, fiecare ir generat avnd
urmtoarele proprieti:
conine numai cifre din mulimea {1, 2, 3, 4};
oricare dou cifre alturate sunt fie ambele pare, fie ambele impare.
Numrul natural n (3n15) se citete de la tastatur. Toate soluiile vor fi scrise
una dup alta, cu spaii ntre soluii, fiecare ir fiind scris fr spaii ntre cifrele ce-l
formeaz. De exemplu, pentru n=3, se afieaz (nu neaprat n aceast ordine)
irurile: 111 113 131 133 311 313 331 333 222 224
242 244 422 424 442 444
(variant bacalaureat august 2003)
http://campion.edu.ro/arhiva submult
24.01.2015
24.01.2015
24.01.2015
Tem
http://campion.edu.ro/arhiva - problemele minmax, adunscad, sumprod,
operatii1, dineu
24.01.2015