Hallo,
ich habe ein Problem bei der Entwicklung eines Algorithmus für eine Schulaufgabe.
Zitat: |
Eine Firma bekommt jeden Monat ein gegebenes Budget, von der Besorgungen gemacht werden müssen, welches nicht überschritten werden darf und verfällt, wenn es nicht genutzt wird. Es gibt jedoch die Möglichkeit, bereits vorhandene Waren zum Einkaufspreis wieder gegen neue Waren auszutauschen um so das Budget "künstlich" zu erhöhen. Erstelle ein Programm, dass bei gegebenen Budget und einer beliebig langen Liste von Dingen mit gegebenen Preisen, einen Plan erstellt, wie alle Dinge schnellstmöglich zu besorgen sind.
|
Nun habe ich mir überlegt, dass ich zunächst das teuerste Listenelement kaufen möchte, dann das zweitteuerste, etc, esseidenn diese sind auf Umwegen schon vorhanden. Bei jedem Einkauf sollte der Gewinn maximal sein, bzw. das verschwendete Budget minimal. Nun stellt sich mir jedoch die Frage, wie ich der Reihe nach alle unterschiedlichen Kombinationen durchgehe, so dass ich tatsächlich die Kombination kriege, die mir den meisten Gewinn erbringt.
Ich habe eine Formel für das "künstlich erweiterte Budget" (max) entwickelt, welche ich im .png-Format mal anhänge. Weiterhin kann von Folgendem ausgegangen werden:
Delphi-Quelltext
1: 2: 3:
| var Liste: Array of Integer; Besitz: Array of Integer; |
Die Formel müsste ansonsten selbsterklärend sein -
count repräsentiert die Anzahl von Dingen die ich habe.
Ich hoffe, dass ich mich einigermaßen verständlich ausgedrückt habe und mir jemand helfen kann und will. Schonmal vielen Dank im Vorraus.
Mfg