Best Practice Die niedrigste Differenz zwischen zwei Listen ermitteln.

Diskutiere Die niedrigste Differenz zwischen zwei Listen ermitteln. im Allgemeine Java-Themen Forum; Ich habe eine Menge(Arraylist) aus maximal 8 und mindestens 2 Elementen(Zahlen). Die Elemente(Zahlen) der Menge sollen in einem weiteren Schritt...

  1. Hades85
    Hades85 Mitglied
    Ich habe eine Menge(Arraylist) aus maximal 8 und mindestens 2 Elementen(Zahlen). Die Elemente(Zahlen) der Menge sollen in einem weiteren Schritt in zwei neue Mengen aufgeteilt werden. Die zwei Mengen sollen anhand ihrer niedrigsten Differenz zueinander aufgeteilt werden.
    Die zwei Mengen dürfen jeweils maximal 4 Elemente aufnehmen und jeweils mindestens 1 Element.

    Bisher habe ich alle möglichen Mengen also (Array)Listen erstellt und miteinander verglichen um dann die beiden Mengen zu finden welche die niedrigste Differenz aufweisen.

    Gibt es einen eleganteren Weg?
     
  2. mrBrown
    mrBrown Super-Moderator Mitarbeiter
    Wie ist denn niedrigste Differenz definiert?
     
  3. Hades85
    Hades85 Mitglied
    Die Elemente der beiden Mengen werden summiert und dann wird die Differenz der beiden Summen gebildet. Wenn die Differenz null ist, dann ist die Differenz die niedrigste.

    Oder wie darf ich dich verstehen?
     
  4. mrBrown
    mrBrown Super-Moderator Mitarbeiter
    Tendenziell dürfte etwas in die Richtung 'erst sortieren, dann auf zwei Listen verteilen' klappen
     
  5. Hades85
    Hades85 Mitglied
    Das funktioniert aber nur wenn die Mengen immer gleich groß sind. Oder täusche ich mich? Also gleich groß im Sinne beide Mengen haben die selbe Anzahl an Elementen.
     
  6. mrBrown
    mrBrown Super-Moderator Mitarbeiter
    Nö, die Menge an Elementen sollte da keine Rolle spielen.

    Kann man sicher sehr schön Testgetrieben umsetzen :p
     
  7. Hades85
    Hades85 Mitglied
    Wonach sortiere ich die denn? Meinst du die Mengen als solches oder die einzelnen Elemente?
    Beispiel:

    Menge = {19,105,55,40,41,75,100}

    Verteile ich die Zahlen jetzt auf zwei neue Mengen, müsste ich vorher die die Menge absteigend sortieren nach ihrer Größe!?
    Also :
    Menge = {105,100,75,55,41,40,19}
    Dann würde ich 105 mit den restlichen Zahlen vergleichen und die Zahl die als Nächtes zur ihr steht auf in die andere Menge aufteilen. Nächster Schritt wäre dann die nächsten Zahlen mit der 75 zu vergleichen und wieder die mit der niedrigsten Differenz zueinander aufzuteilen , nur diesmal kommt die kleinere von beiden zur Menge aus dem vorherigen Schritt zur höchsten Zahl. Am Schluss bleibt dann bei einer krummen Menge eine Zahl über, die wird dann der Menge zugespielt die bisher die niedrigste Summe im Vergleich zur anderen Summe steht.

    neueMenge_1 ={105,55,41} Summe= 201
    neueMenge_2 ={100,75,40} Summe= 215
    neueMenge_1 ={100,55,41}+{19} neue Summe = 220

    beide Mengen im Vergleich 220 - 215 = 5

    Aber ist das allgemeingültig? Bzw. wird nach diesem Schema immer die niedrigste Differenz ausgelotet?

    EDIT: Habe es gerade mal durchgerechnet, ist nicht allgemeingültig.
     
    Zuletzt bearbeitet: 11. Jan. 2018
  8. mrBrown
    mrBrown Super-Moderator Mitarbeiter
    Die Menge absteigend sortieren, und die Werte der Reihe nach der jeweils kleinsten Menge zuteilen, meinte ich.

    Für welche Beispiele den nicht?
     
  9. Hades85
    Hades85 Mitglied
    Also habe es mit meiner oben genannte Menge gemacht:

    Menge = {105,100,75,55,41,40,19}

    Wenn ich dich richtig verstanden habe, ist dein Ansatz der wie ich es geschrieben habe oder?

    Demzufolge:

    neueMenge_1 ={105,55,41} Summe= 201+19 = 220
    neueMenge_2 ={100,75,40} Summe= 215

    Die Differenz ist dann 5. Aber folgende Konstellation macht mehr Sinn:

    neueMenge_1={100,75,41} Summe = 216
    neueMenge_2={105,55,40} Summe = 200+19 = 219 Die Differenz ist dann noch kleiner, denn 3.
     
  10. Hades85
    Hades85 Mitglied
    Niemand eine Idee?
     
Die Seite wird geladen...

Die niedrigste Differenz zwischen zwei Listen ermitteln. - Ähnliche Themen

den zweit niedrigsten wert in einem array berechnen
den zweit niedrigsten wert in einem array berechnen im Forum Allgemeine Java-Themen
Maximale Differenz
Maximale Differenz im Forum Hausaufgaben
Wie erzeuge ich die Differenz von zwei Daten in Stunden??
Wie erzeuge ich die Differenz von zwei Daten in Stunden?? im Forum Java Basics - Anfänger-Themen
Zufällige Farben mit Differenz zu anderen Farbwerten
Zufällige Farben mit Differenz zu anderen Farbwerten im Forum HTML / CSS / JScript / AJAX
Datum Differenz aus zwei Strings ermitteln
Datum Differenz aus zwei Strings ermitteln im Forum Java Basics - Anfänger-Themen
Thema: Die niedrigste Differenz zwischen zwei Listen ermitteln.