Ciao a tutti, volevo chiedervi se qualcuno poteva darmi qualche consiglio per quanto riguarda il calcolo di una moda all'interno di un vettore(di interi)..Non saprei da dove iniziare..Qualcuno potrebbe darmi qualche consiglio??grazie mille!
Ciao a tutti, volevo chiedervi se qualcuno poteva darmi qualche consiglio per quanto riguarda il calcolo di una moda all'interno di un vettore(di interi)..Non saprei da dove iniziare..Qualcuno potrebbe darmi qualche consiglio??grazie mille!
A mano come faresti?
Amaro C++, il gusto pieno dell'undefined behavior.
eh a mano è facile, basta guardare un insieme di numeri e quello con frequenza maggiore rappresenta la moda.Ma a livello di programmazione non saprei da dove partire.
"Basta guardare" se si tratta di 10 numeri; se si trattasse di 2000 numeri come faresti?
Amaro C++, il gusto pieno dell'undefined behavior.
Tu "guardi" 100 numeri e individui subito "quello con frequenza maggiore"?Originariamente inviato da fabiranni
eh a mano è facile, basta guardare un insieme di numeri e quello con frequenza maggiore rappresenta la moda.Ma a livello di programmazione non saprei da dove partire.
Scomponi in maniera dettagliata i passi che compi, anche se non te ne rendi conto ...
No MP tecnici (non rispondo nemmeno!), usa il forum.
l'array deve essere non superiore a 20 elementi..fino alla creazione ecc lo so fare, anche media, varianza, massimo e minimo..ma la moda non so da dove partire..
Non c'entra la dimensione, l'algoritmo di base è sempre quello... ribadisco, come faresti a mano per trovare la moda di un array di dimensioni non indifferenti?
Amaro C++, il gusto pieno dell'undefined behavior.
sicuramente passo passo...e tenendo l'array ordinato in valore min > valore max
Alla batteria dai retta ballA
oppure una cosa tipo questa:
codice:#include <iostream> #include <map> using namespace std; #define length(x) (sizeof (x) / sizeof *(x)) int main() { int a[] = {1,2,9,5,6,4,8,1,2,1,7,9,8,9,9,9,9,9}; map<int,int> freq; for ( size_t i = 0; i < length ( a ); i++ ) { ++freq[a[i]]; } map<int,int>::const_iterator it = freq.begin(); while ( it != freq.end() ) { cout<< it->first <<": "<< it->second <<endl; ++it; } return 0; }
Alla batteria dai retta ballA
Occhio, la richiesta riguarda il C. Comunque (con i dovuti adattamenti per farla andare in C) può essere una soluzione.Originariamente inviato da gianvituzzi
oppure una cosa tipo questa:
Amaro C++, il gusto pieno dell'undefined behavior.