Come trovare la modalità in una matrice di numeri in Perl

March 11

Come trovare la modalità in una matrice di numeri in Perl


Quando si dispone di una serie di numeri in Perl, è possibile utilizzare la funzione di mappa per creare un hash che consiste di ogni numero unico e il suo conteggio. Quando si ordina l'hash in ordine decrescente, il primo elemento è la modalità. Tuttavia, dal momento che non ci può essere più di una modalità, è necessario continuare a cercare gli elementi successivi nel hash ordinato che hanno lo stesso numero di come il primo elemento.

istruzione

1 Avviare un editor di testo o Blocco note e creare un nuovo script Perl. Ad esempio, digitare quanto segue come la prima riga nel file:

! / usr / bin / perl

2 Dichiarare tre variabili - la matrice per il quale si desidera calcolare la modalità, un hash per memorizzare il conteggio di ogni numero univoco e un valore scalare di conteggio della modalità. Ad esempio, digitare:

il mio @array;
il mio numero;
il mio $ count;

3 Aggiungere numeri a matrice e impostare il conteggio modalità a zero, che non è un conteggio valida per una modalità. Ad esempio, digitare:

@array = (7,1,5,9,11,7,3,3,5,7,9,3,8);
$ Count = 0;

4 Creare un hash in cui le chiavi sono numeri unici nella matrice ed i valori sono il numero di occorrenze di ogni tasto mappando la matrice di un hash e incrementare il valore ogni volta che un tasto viene aggiunto l'hash. Ad esempio, digitare:

mappa {numero $ {$ _}} ++ @array;

5 Ordinare l'hash in ordine in base al numero di occorrenze decrescente in modo che la chiave con più occorrenze, o la modalità, è il primo elemento. Loop attraverso l'hash ordinato di trovare il modo. Ad esempio, digitare:

for $ i (in ordine {$ numero {$ b} <=> $ numero {$ a}} tasti numerici%) {

6 Stampa il numero di volte che la modalità appare nei dati impostati la prima volta attraverso solo il ciclo. Ad esempio, digitare:

stampa se count $ == 0 "La modalità appare $ numero {$ i} volte nel set di dati. \ n";

7 Cattura il conteggio della modalità la prima volta che si passa attraverso il ciclo verificando se il conteggio modalità è pari a zero. Ad esempio, digitare:

$ Count = ($ count == 0)? $ Numero {$ i}: $ count;

8 Stampa il valore del modo per ciascuna modalità nel set di dati se il conteggio è uguale al conteggio modalità. Ad esempio, digitare:

print "modalità è $ i \ n" se $ numero {$ i} == contare $;
}

9 Salvare lo script e assegnare un nome di file, come ad esempio "mode.pl." Eseguire lo script e verificare che il risultato è corretto. Per esempio, lo script nei passaggi precedenti produce il seguente risultato:

La modalità appare 3 volte nel set di dati
modalità è 3
modalità è 7