Einteilung

lhc

Mitglied
Hallo erst mal danke für die Aufnahme!

Ich habe ein Problem nämlich mir fehlt ein Ansatz damit ich eine Einteilung vornehmen kann! Ich soll die Datten aus einem gegebenen Array in nach der "grösse" einteilen Als Beispiel soll double[] data = {-2, -1.8, 1.1, 2.3, 2.6, 4.0, 4.2, 4.7, 7}; sein! Dann muss ich sagen, dass -2,-1.8 in ein Päckchen gehen, dann 1.1 dann 2.3 und 2.6 in ein anderes usw. Bis ich alle daten "Gruppiert" habe in den Klassen. Meine Idee wäre mit einer For-Schlaufe gewesen, aber leider bin ich mit diesem Ansatz nicht weiter gekommen. Wer hätte einen Ansatz? Das Maximale element soll einfach dann in die letzte Gruppe eingeteilt werden.
Das ganze soll dann so ausschauen:

Gruppe 0: -2, -1.8;
Gruppe 1: 1,1;
Gruppe 2: 2,3 , 2,6
Gruppe 3: 4,0 4,2 4,7, 7


Ich bedanke mich schon im Vorfeld!
 

mihe7

Top Contributor
Deine Aufgabenbeschreibung wirft ja mehr Fragen auf als sie beantwortet...
  1. Darf davon ausgegangen werden, dass die die Daten der Größe nach sortiert sind?
  2. Sehe ich es richtig, dass es ganzzahlige Grenzen, beginnend ab 1 gibt, die den Spaß in Gruppen einteilen?
  3. Sollen die Gruppen nur ausgegeben werden oder soll etwas zurückgegeben werden? Falls letzteres: was soll zurückgegeben werden?
 

lhc

Mitglied
Hallo mihe7, vielen Dank für deine Rückmeldung.
zu 1) Ja es wird davon ausgegangen das das Array sortiert ist! Zu deinem Zweiten Punkt, ich habe jetzt begonnen, das ich nur die Ganze Zahl als Grenze nehme! Zu 3 Es sollen nur die Gruppen zurück gegeben werden! Ich habe schon mal begonnen. Aber leider Itteriert er nur durch! Ich würde gerne Sagen beim If wenn Grösser als das erste Element und kleiner als das Nächste dann Erhöhe den Zähler! Also eintritt.. Wo ist mein Überlegungsfehler?
Java:
  public int EntriesInBin(int Number) {

    double min = getMinValue(); //kleinstes Element im Array
    double max = getMaxValue(); //Grösstes Element im Array

  int eintritt = 0; //Zähler für die Gruppen einteilung
  int minBin = (int) min;

    for (int i = minBin ; i <= data.length; i++) {
      if(i >= data[i] && i <= data[i] ){
        eintritt++;
      }
      /*else
        eintritt++;
      lastminBin += getBinSize();
      */
    }

    return eintritt;
  }
 

mihe7

Top Contributor
1) Ja es wird davon ausgegangen das das Array sortiert ist!
OK
Zu deinem Zweiten Punkt, ich habe jetzt begonnen, das ich nur die Ganze Zahl als Grenze nehme!
Du sollst nicht einfach mit irgendwas beginnen. Ich formuliere meine Frage anders: welche Vorschrift gibt es für die Gruppenbildung?

Zu 3 Es sollen nur die Gruppen zurück gegeben werden!
Deinem Code nach werden aber keine Gruppen zurückgegeben, sondern nur die Anzahl der Gruppen. Was ist denn nun richtig?

Wo ist mein Überlegungsfehler?
Ein Fehler im Code ist die Bedingung i >= data[i] && i <= data[i]. Diese gilt gdw. i == data[i] gilt. Ein anderer Fehler ist die Überlegung, dass Du zwei Grenzen benötigen würdest. Da die Daten sortiert sind, reicht eine.
 

lhc

Mitglied
Also zum dir vlt meine Überlegung zu erklären hilft es vielleicht wenn du weisst das ich ein Histogramm programmieren muss. Diese Bekommt ein Array aus Daten! Diese Daten sollen dann die Anzahl der Gruppe zurück geben!
 

Ähnliche Java Themen

Neue Themen


Oben