Jump to content

[C++] Vectorul de frecvență / Vectorul caracteristic


Andreigl
 Share

Recommended Posts

Diferența dintre cei 2 vectori este următoarea:

  • Vectorul frecvență înmagazinează de câte ori apare un număr într-un șir de numere.
  • Vectorul caracteristic este o operație booleană (adevărat sau fals), adică dacă un anumit număr s-a găsit, atunci valoarea lui este 1, dacă nu, atunci este 0.

 

În poza următoare avem un vector cu 7 elemente.

image.png.858789a89efb496a8b12b956eee59750.png

 

Vectorul frecvență va arăta în felul următor:

image.png.cda2dd22afcf82a7fd839a461ccacffa.png

 

Ce observăm în poza de mai sus?

  • Valorile din chenar reprezintă de câte ori apare numărul de sub chenar în vectorul nostru (X[]).
  • Numărul 0 în vectorul nostru apare o singură dată, 1 nu apare deloc, 2 apare de 2 ori, etc.

 

Acum, vectorul caracteristic va arăta similar cu cel de sus, doar că valoarea maximă va fi 1 (adevărat).

image.png.475ca0cd404e9417e468b885150c58d7.png

 

Următorul program arată de câte ori a fost introdus un număr.

#include <stdio.h>

// Declaram variabilele ca fiind globale pentru ca fiecare element sa fie 0
int Vector_Frecventa[1000];
int Vector_Caracteristic[1000];

int main()
{
	// Citim un numar si in functie de acest numar citim alte N numere
	int N;
	scanf_s("%d", &N);

	/*
		Un for ce se repeta de N ori
		Citim numarul si in pozitia numarului respectiv in vector crestem valoarea cu 1
		De exemplu: Citim 75, atunci Array[75] += 1 (deci numarul 75 a aparut de 1 ori) 
	*/
	int Numar;
	for (int i = 1; i <= N; i++)
	{
		scanf_s("%d", &Numar);
		Vector_Frecventa[Numar] += 1;

		if (!Vector_Caracteristic[Numar])
			Vector_Caracteristic[Numar] = 1;
	}

	printf("Ai introdus urmatoarele numere:\n");
	for (int i = 0; i < N; i++)
		if (Vector_Caracteristic[i] != 0)
			printf("%d", i);

	printf("\n");
	for (int i = 0; i < N; i++)
	{
		if(Vector_Frecventa[i] != 0)
			printf("%d a fost introdus de %d ori\n", i, Vector_Frecventa[i]);
	}
}

 

Edited by shanker'
Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.