När du har en matris med tal i Perl , kan du använda kartfunktionen för att skapa en hash som består av varje unikt nummer och dess räkning . När du sorterar hash i fallande ordning , är den första delen i läget . Men eftersom det kan finnas mer än en -läge , måste du fortsätta att leta efter efterföljande element i den sorterade hash som har samma antal som det första elementet . Instruktioner
1
Starta en textredigerare eller Anteckningar och skapa en ny Perl-skript . Skriv till exempel följande som första rad i filen :
# /usr /bin /perl
2
Deklarera tre variabler - arrayen som du vill ! beräkna läget , en hash för att lagra räkningen för varje unikt nummer och en skalär värde av läget s räkning . Till exempel , typ :
min @ array , min % nummer, min $ count; Addera 3
Lägga till nummer på arrayen och ställa in läget räkna till noll , vilket är inte ett giltigt räknas för en mod . Till exempel , typ :
@ array = ( 7,1,5,9,11,7,3,3,5,7,9,3,8 ) , $ count = 0 ;
4
Skapa en hash där nycklarna är unika nummer i arrayen och värdena är antalet förekomster av varje tangent genom att kartlägga arrayen till en hash och uppräkning av värdet varje gång en knapp läggs till hash . Till exempel , typ :
map { $ numret { $ _ } + + } @ array ,
5
Sortera pölsan i fallande ordning baserat på antalet förekomster så att nyckel med flest förekomster , eller läget , är det första elementet . Loop igenom den sorterade hash för att hitta läget . Till exempel , typ :
för $ jag ( sort { $ numret { $ b} < = > $ numret { $ a } } nycklar % antal ) {
6
Skriv hur många gånger läget visas i datamängden första gången genom slingan endast . Till exempel , typ :
print " Läget visas $ numret { $ i} gånger i datamängden \\ n . " Om $ count == 0;
7
Capture räkningen av läget första gången du passerar slingan genom att kontrollera om läget är noll . Till exempel , typ :
$ count = ( $ count == 0 ) ? $ numret { $ i} : $ count ;
8
ut värdet av läget för varje läge i uppsättningen uppgifter om räkningen är detsamma som läget räknas . Till exempel , typ : " är läget $ i \\ n "
print om $ nummer { $ i} == $ count; }
9
Spara skriptet och tilldela en filnamn , t.ex. " mode.pl. " Kör skript och kontrollera att resultatet är korrekt . Till exempel producerar manus från de tidigare stegen följande resultat :
läget visas 3 gånger i uppgifterna setMode är 3mode är 7 Addera