Problema informatica

Discutii despre tot ce nu se incadreaza in celelalte categorii.

Moderators: Moderatori ajutatori, Moderatori

Post Reply
Antonst
Membru, skill 0
Membru, skill 0
Posts: 2
Joined: 01 Jan 2017, 13:34
Detinator Steam: Nu
CS Status: Citesc forumul eXtreamCS.com...!
Fond eXtream: 0
Contact:

01 Jan 2017, 13:49

Buna ziua! In primul rând va salut cu mult respect și va urez un an nou fericit!
De puțin timp am început sa învăț d-ale programării..însă la aceasta problema am o idee conturata,dar nu știu cum sa o pun in practica.
Problema suna in felul următor:

Fie vectorul A(n) cu numere întregi. Sa se transforme vectorul A in multimea B.(elementele unei mulțimi sunt unice)

Sper ca nu am sfidat regulamentul :thinking:
RoyalServer 2
User avatar
sound
Membrul anului 2018
Membrul anului 2018
Posts: 5807
Joined: 23 Jan 2013, 22:52
Detinator Steam: Da
CS Status: Citesc forumul eXtreamCS.com...!
Detinator server CS: Nu
SteamID: sou_nd
Reputatie: Fost membru Club eXtreamCS (4 luni)
Nume anterioare: s o u n d -, snd
Fost Moderator
Fost Super Moderator
Moderatorul anului 2017
Membrul anului 2018
Fond eXtream: 0
Location: Romania
Has thanked: 91 times
Been thanked: 80 times
Contact:

01 Jan 2017, 13:52

iti recomand siteul brainly.ro
Antonst
Membru, skill 0
Membru, skill 0
Posts: 2
Joined: 01 Jan 2017, 13:34
Detinator Steam: Nu
CS Status: Citesc forumul eXtreamCS.com...!
Fond eXtream: 0
Contact:

01 Jan 2017, 14:39

Am uitat de el,mulțumesc!
User avatar
IsTI37
Fost administrator
Fost administrator
Posts: 10987
Joined: 10 Apr 2007, 15:02
Detinator Steam: Da
Reputatie: Fost administrator
Fost SysAdmin
Fost Fondator GTA5 (CVL)
Location: Cluj-Napoca
Has thanked: 28 times
Been thanked: 776 times

02 Jan 2017, 01:42

Trebuie sa stergi toate numerele din array care se repeta. Sunt mai multe moduri, poti copia in alt vector b doar cele care nu exista deja in vectorul b sau poti pur si simplu sa copiezi din A in B si sa stergi din b numerele cu index-uri care au aceeasi numar si va ramane ce doresti. (vezi algoritmul pentru stergere de la o anumita pozitie)

Cea mai simpla solutie e sa creezi un array mai putin special initializat la 0 pe toate pozitiile care va fi lung de n cifre (n index-uri) si in ele vei stoca de cate ori ai gasit in vectorul A o anumita cifra. Adica nr[1]=1 daca ai gasit o data numarul 1, nr[5] = 3 daca gasesti numarul 5 de 3 ori in vectorul A si daca n-ai gasit niciun 9 atunci vei avea nr[9]=0. Simpla fiindca nu trebuie sa stergi din array in pozitia x sau sa sortezi ci doar sa numeri elementele.

Parcurgi array-ul special de la 0 la n si generezi un array B adaugand cate un numar cu k++; b[k]=i cand nr>=1. In plus va fi si sortat fara sortare.
HecaTe
Fost moderator
Fost moderator
Posts: 3292
Joined: 16 Aug 2014, 08:53
Detinator Steam: Da
CS Status: Citesc forumul eXtreamCS.com...!
SteamID: hecate_2k
Reputatie: Fost eXtream Mod
Fond eXtream: 0
Location: Medias/Alba Iulia
Has thanked: 74 times
Been thanked: 40 times
Contact:

02 Jan 2017, 09:28

IsTI37 wrote:Trebuie sa stergi toate numerele din array care se repeta. Sunt mai multe moduri, poti copia in alt vector b doar cele care nu exista deja in vectorul b sau poti pur si simplu sa copiezi din A in B si sa stergi din b numerele cu index-uri care au aceeasi numar si va ramane ce doresti. (vezi algoritmul pentru stergere de la o anumita pozitie)

Cea mai simpla solutie e sa creezi un array mai putin special initializat la 0 pe toate pozitiile care va fi lung de n cifre (n index-uri) si in ele vei stoca de cate ori ai gasit in vectorul A o anumita cifra. Adica nr[1]=1 daca ai gasit o data numarul 1, nr[5] = 3 daca gasesti numarul 5 de 3 ori in vectorul A si daca n-ai gasit niciun 9 atunci vei avea nr[9]=0. Simpla fiindca nu trebuie sa stergi din array in pozitia x sau sa sortezi ci doar sa numeri elementele.

Parcurgi array-ul special de la 0 la n si generezi un array B adaugand cate un numar cu k++; b[k]=i cand nr>=1. In plus va fi si sortat fara sortare.


Mai pe scurt, tu iti faci un vector de pozitie cu n elemente, pe care il initializezi cu 0.

Deci, cand faci citirea la vectorul A element cu element, pui B[A]++;

ex:

while(i<=n)
{
cin>>A[n];
B[A]++;
i++;
}
Mai nou si internet banking are liber de 1 decembrie :kappa: :kappa:
Image
Post Reply

Return to “Discutii generale”

  • Information
  • Who is online

    Users browsing this forum: Bing [Bot], Facebook [Bot], Petal [Bot] and 581 guests