ERLEDIGT
NEIN
NEIN
ANTWORTEN
1
1
ZUGRIFFE
929
929
EMPFEHLEN
-
29.05.10 18:01 #1Sansiba007 Tutorials.de Gastzugang
Hallo Leute,
ich solle den Modalwert eines Arrays berechnen. Also also als Input wäre z.B. int a[] ={ 1,5,-4,1,1,1,-4,-4,5,5} Als Ergebnis soll logischerweise 1 erscheinen.
Leider ist das ohne Importe, für mich ein bisschen schwierig. Hier ist mal ein Versuch von mir:
static int breite(int[] a) {
int count = 1;
int x = 0;
int mod = 0;
for (int j = 1; j < a.length; j++) {
count=0;
for (int i = 1; i < a.length; i++) {
if (a[x] == a[i]) {
count += 1;
System.out.println(count);
}
if (mod < count) {
mod = count;
}
}
a[x] = a[x + 1];
}
return mod;
}
public static void main(String[] args) {
int a[] = {3, 12, 12, 5, 5, 0, -3, 0, 5, -5, 12};
System.out.println(breite(a));
}
}
Hat jemand, wie ich das Programm zum laufen bringe? Oder ist der gesamte Ansatz falsch?
-
31.05.10 14:34 #2
Habe kurz Modalwert nachgeschlagen: http://de.wikipedia.org/wiki/Modus_%28Statistik%29
Code :1
Der Modus oder Modalwert ist der häufigste Wert einer Häufigkeitsverteilung.
Um diesen für eine Menge an Werten zu berechnen müsste man die Häufigkeit jedes vorkommenden Wertes bestimmen. Du lieferst in der Funktion die Häufigkeit und nicht den den Wert, der die grösste Häuftigkeit hat, zurück.
- über das Quellfeld iterieren und in einem temporären Feld die Häufigkeit des aktuellen Elementes ermitteln.
Das Element mit der grössten Häufigkeit mit seiner Häufigkeit speichern.
In deinem Beispiel müsste der Modalwert 12 sein und nicht 3 (12 und 5 kommen gleich oft vor, da kann man diskutieren ob es einen Modalwert gibt).
Arrays in Java starten mit Index 0.
Die Prüfung ob es einen neuen Höchstwert gibt kommt nach der inneren Schleife, nicht darin.
vgl:
Code java:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
static int breite(int[] a) { int count = 0; int mod = 0; int modCount = 0; for (int j = 0; j < a.length; j++) { count = 0; for (int i = 0; i < a.length; i++) { if (a[j] == a[i]) { count += 1; } } if (modCount < count) { mod = a[j]; modCount = count; } } return mod; } public static void main(String[] args) { int a[] = { 3, 12, 12, 5, 5, 0, -3, 0, 5, -5, 12 }; System.out.println(breite(a)); }
Denken gefärdet die Gewohnheit
Ähnliche Themen
-
Laptop / Netbook ... ganz ohne Display (und evtl. ohne HDD)
Von mikeee im Forum HardwareAntworten: 12Letzter Beitrag: 08.01.11, 02:05 -
Funktionsaufruf nach AJAX - ohne eval, ohne jQuery?
Von ZodiacXP im Forum Javascript & AjaxAntworten: 1Letzter Beitrag: 02.11.10, 11:53 -
Mudbox & 3dsMax-Importe?
Von holzmcgyver im Forum 3D Studio MaxAntworten: 1Letzter Beitrag: 29.05.10, 22:43 -
Eclipse und Importe
Von kirina im Forum JavaAntworten: 9Letzter Beitrag: 12.03.08, 16:40 -
Frame ohne Minimieren. Schließen, Maximieren und ohne Titel
Von mrno im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 2Letzter Beitrag: 16.07.05, 00:08





Zitieren
Login





