die Berechnung der Häufigkeit einer Zahl in einem Array
Ich habe ein array, scores[5][5]
und es ist gefüllt mit test erzielt.
Ich brauche zu finden, die am häufigsten auftretenden Partitur und gibt es zurück.
- Sind Sie auf der dalton? stackoverflow.com/users/307394/dalton
- Ist diese Frage bezogen? stackoverflow.com/questions/2740852/...
- ja, warum spielt es eine Rolle, aus irgendeinem Grund
- Registrieren Sie sich 🙂 Dann behalten Sie Ihre Frage, die die Geschichte und reputation.
- Wenn diese Hausaufgaben, bitte weisen Sie es als solche.
- dies ist mein letztes Projekt gerade versucht, es zu erhalten getan
- Dies ist die Algorithmik. Grundsätzlich müssen Sie jede Zelle einzeln (von 0-4 0-4). Dann würde ich sagen, Sie müssten eine ArrayList halten insgesamt jeweils Partitur, die Sie haben. Es könnte ein kluger, präziser Art und Weise, Dinge zu tun.
- Ja, verweisen auf Verwandte Fragen hilft Beantworter den Kontext verstehen. Er erklärt auch, ob die Frage ist eine doppelte.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich würde einfach erstellen ein
HashMap<Integer,Integer>
wo die erste Ganzzahl ist der Wert, der erzielt array und die zweite ist die Frequenz.Dann den array Befüllen der hashmap. Wenn bereits ein Schlüssel existiert, bis die Zählung von einem. Wenn es einen neuen Schlüssel, setzen Sie es ein.
Dann die hashmap zu finden, den Wert mit dem größten vorkommen.
Ich ging zur Arbeit auf den source-code einmal ich habe Zugang zu einem Computer, auf dem Java installiert wurde, aber, da es jetzt gekennzeichnet Hausaufgaben, es algorithmen, die nur (was besser für Sie auf lange Sicht sowieso):
Das ist der grundlegende Algorithmus, den ich Folgen würde, die besteht aus zwei aufeinander folgenden loops.
Den ersten einfach erstellt eine Zuordnung der Werte zählt, so dass Sie finden, die größten zählen später.
Die zweite läuft durch die Karte und erstellt eine Liste der Werte mit den höchsten zählen.
Gut, es gibt 2 Teile: Durchlaufen der Partituren und die Speicherung der Häufigkeit der einzelnen score. Beide beinhalten mit einem array/arraylist. Wir können direkt Fragen wenn Sie weitere Hilfe benötigen. 😀
Da erzielt haben, werden wahrscheinlich in einem begrenzten Bereich (z.B.
0..100
), können Sie ein array zählen, um dies schnell zu tun. Im Grunde, Sie tun der ersten phase der zählen, Sortieren.Den
count
für alle möglichen Punktzahl beginnt bei0
, dann für jede Wertungs
erhöhencount[s]
. Sobald alle Ergebnisse verarbeitet werden, Scannen Sie dencount
und sehen, welchecount[k]
ist die höchste.Können Sie auch verfolgen die häufigsten Partitur, wie Sie tun, zu zählen. Nur so etwas tun:
Da Ihre Ergebnisse sind übersichtlich in einer 2d-matrix (aus irgendeinem Grund?), Sie können jede Wertung wie folgt:
Oder halten Sie einen Zeiger auf die aktuelle größte, wie Sie gehen. Jedes mal, wenn Sie erstellen oder aktualisieren, zu vergleichen, um zu sehen, wenn Sie gerade überschritten die bisher größte und ersetzen Sie es, wenn Sie haben.
Spart einen weiteren Durchlauf durch die hashmap.
Für Dinge wie diese, schreiben Sie code, die Modelle, wie Sie tun würde, Dinge, die im real-life.
Let ' s Modell:
Ihre [5][5] array: Es ist nur ein raster von zahlen mit 5 Spalten und 5 Zeilen.
Start an der 0,0-position - Lesen Sie den Wert an dieser position stehen, und beginnen Sie einer Liste (in Java, eine ArrayList oder HashMap), fügen Sie die Nummer auf der Liste und geben Sie eine Raute (Wert 1), um anzuzeigen, dass Sie gesehen habe einmal.
Gehen Sie über die Zeile und dann zurück nach Links und nach unten eine Zeile, et al.
Jede Zahl, die Sie Lesen, zu überprüfen, ob es bereits auf Ihrer Liste. Wenn es ist, stellen Sie einfach einen anderen hash-Zeichen (add 1). Wenn nicht, dann hinzufügen der Nummer zu Ihrer Liste, und geben Sie ihm eine Raute.
Nachdem Sie fertig sind Lesen der array, betrachten Sie Ihre Liste, von Anfang an, und verfolgen der Zahl mit den meisten hash-Zeichen, die Sie gesehen haben, indem Sie Ihren finger auf es (das speichern der Nummer in einer Variablen).
Zurück, die Letzte variable.