Hallo,
mein Problem ist vorerst kein reines PHP Problem, viel mehr ein programmiertechnisches.
Also,
ich habe eine Menge von 150 Einheiten. Daneben gibt es 5 verschieden Objekte (nicht die aus OOP...), mit jeweils unterschiedlichen Wertungen.
Bsp: A = 10, B = 20, C = 30, D = 40, E = 50
Insgesamt müssen 5 Objekte ausgewählt werden.
Nun sollen die Elemete so ausgewählt werden, dass die Summe der Objekte 150 ergibt.
Bsp. B,C,E,A,D = 150
oder D,D,D,A,B = 150
oder E,E,B,B,A = 150
Die Reihenfolge der Elemete spielt dabei keine Rolle. Es können auch Elemete wiederholt werden.
Hoffe es war halbwegs verständlich
Mir scheint das ist irgendein mathematische Optimierungsproblem. Nur kenn ich mich damit nicht so gut aus und würde mich über Anregungen freuen.
Mein erster Gedanke wäre eine Schleife folgendermaßen: 5xE auswählen (=250), prüfen ob 250 < 150 -> hier der Fall, letztes Element entfernen und dafür 4xE und 1xD (=240). Dann eben so weiter bis irgendwann 150 kommt.
Damit erhalte ich aber immer die gleichen Elemente. Ich möchte gern, dass die Elemente möglichst verschieden sind (s.o.).
Wer kann mir hier einen Lösungsansatz geben. Habe echt keine Idee mehr.
Vielen Dank und beste Grüße
mein Problem ist vorerst kein reines PHP Problem, viel mehr ein programmiertechnisches.
Also,
ich habe eine Menge von 150 Einheiten. Daneben gibt es 5 verschieden Objekte (nicht die aus OOP...), mit jeweils unterschiedlichen Wertungen.
Bsp: A = 10, B = 20, C = 30, D = 40, E = 50
Insgesamt müssen 5 Objekte ausgewählt werden.
Nun sollen die Elemete so ausgewählt werden, dass die Summe der Objekte 150 ergibt.
Bsp. B,C,E,A,D = 150
oder D,D,D,A,B = 150
oder E,E,B,B,A = 150
Die Reihenfolge der Elemete spielt dabei keine Rolle. Es können auch Elemete wiederholt werden.
Hoffe es war halbwegs verständlich

Mir scheint das ist irgendein mathematische Optimierungsproblem. Nur kenn ich mich damit nicht so gut aus und würde mich über Anregungen freuen.
Mein erster Gedanke wäre eine Schleife folgendermaßen: 5xE auswählen (=250), prüfen ob 250 < 150 -> hier der Fall, letztes Element entfernen und dafür 4xE und 1xD (=240). Dann eben so weiter bis irgendwann 150 kommt.
Damit erhalte ich aber immer die gleichen Elemente. Ich möchte gern, dass die Elemente möglichst verschieden sind (s.o.).
Wer kann mir hier einen Lösungsansatz geben. Habe echt keine Idee mehr.
Vielen Dank und beste Grüße
Kommentar