Maximale Summe

Hallo,

ich suche nach einer Möglichkeit Integer Zahlen, die in einem Array gespeichert sind, so zu summieren, dass eine maximale Summe herauskommt, welche einen Maximalwert z.b. 5000 nicht überschreitet.
Dafür gilt, dass die Zahlen nicht zusammenhängen müssen!
Finde leider gerade nichts in der java api…

Danke für die Hilfe

Mfg

Hey,

wenn ich dich richtig verstanden habe, dann kannst du es so machen:

class Summe {
public static void main (String[] argv) {

int x = 100;
int[] deinArray = new int[x];

// Besetzt das Feld mit Zufallszahlen.
for(int i = 0; i

aber nimmt er bei Deiner Methode jetzt nicht einfach die ersten einträge im array bis zur position x und vernachlässigt die „hinteren“ positionen…so könnte zb. an letzter stelle noch ein eintrag stehen der die z.b. 5000 voll macht…

Ja macht er, aber das kannst du schnell ändern.
Du muust nur das else wegmachen und diese Zeile ändern.

„FeldAnzahl = i + 1;“
in
„FeldAnzahl = FeldAnzahl + 1;“

So klappt das dann.

Ich packe meinen Rucksack… :smile:
Du bist über das klassische Rucksackproblem gestolpert, schau mal hier:

http://de.wikipedia.org/wiki/Rucksackproblem

Die Berechnung läuft auf einen „dummen“ -aber sehr einfachen- Bruteforce-Ansatz hinaus. Wenn du mal bei Google „rucksackproblem java“ eingibst bekommst du direkt jede Menge Lösungen präsentiert, beispielsweise hier:
http://www.easy-coding.de/wiki/allgemein/rucksack-pr…