💻 Programare C++: Vectori de frecvență și caracteristici

Imagine: 💻 Programare C++: Vectori de frecvență și caracteristici

💻 Programare C++: Vectori de frecvență și caracteristici

Niște concepte foarte întâlnite în programare și algoritmică sunt vectorii caracteristici și cei frecvență. În tutorialul de astăzi vă voi arăta cum funcționează ambele tipuri de mulțimi speciale și le vom implementa în limbajul de programare C++

Vectori caracteristici

Înainte de a începe implementările efective trebuie să înțelegem cum funcționează acești algoritmi. Vectorii caracteristici sunt folosiți pentru a stoca dacă un număr anume, care, de exemplu, respectă o proprietate, apare într-un alt număr, mulțime de numere sau alte cazuri. Mai exact, pentru vectorul caracteristic, denumit prezent[10], vom seta prezent[2] = 1, dacă cifra 2 apare în numărul n citit de la tastatură. La final vom afișa dacă acesta apare sau nu. Mai jos poți vedea implementarea în limbajul de programare C++ a acestui program care parcurge un număr și marchează prezența sau absența singurei cifre pare și prime într-un vector caracteristic.

În programul anterior avem de verificat un singur număr, iar această problemă putea fi rezolvată folosind o singură variabilă de tip boolean, însă dacă problema ar fi cerut mai multe numere această abordare nu ar fi fost eficientă, fiind astfel nevoie de un vector pentru stocarea fiecăruia. Acum apare următoarea problemă, cum putem număra de câte ori apare această cifră într-un număr?

Vectori de frecvență

Acest tip de vectori este folosit la numărarea aparițiilor, în timp ce vectorii caracteristici sunt folosiți la verificarea apariției unui element. Mai exact, pentru vectorul de frecvență denumit freq[10], care va stoca numărul de apariții a cifrei 2, vom executa comanda freq[2]++. Sub acest paragraf poți vedea algoritmul care numără de câte ori apare 2 într-un număr n citit de la tastatură în limbajul C++.

Din nou, algoritmul nu este neapărat mai eficient în acest caz, deoarece trebuie să verificăm un singur număr. În caz contrar, avem nevoie de un vector în care putem stoca aparițiile pentru fiecare element. Atenție, acest tip de vector poate avea multe apariții la un singur element astfel se recomandă setarea acestuia de tip long long int, în timp ce un vector caracteristic poate folosi doar variabile de tip boolean pentru a salva memoria de execuția a programului.

La final, pentru a fixa mai bine cunoștințele nou acumulate recomandăm spre rezolvare următoarele probleme de pe platforma PBinfo: numere8, numere1, ciffrecv.

Andrei Frîntu
Andrei Frîntu

Fondatorul platformei - mentor Academia

LinkedIn Instagram GitHub
© Copyright 2024 - CodulLuiAndrei.ro - Toate drepturile sunt rezervate