Im SelfHTML-Forum kam gestern folgende Frage auf.
Gegeben seien eine unbegrenzte Anzahl an Rohr-Rohstücken mit festgelegter Länge (z.B. 3000mm, 5000mm und 8000mm).
Aus diesen Rohstücken sollen zum Beispiel nun 6 Rohrstücke der Länge 2000mm rausgesägt werden. Es ist egal, wieviel Rohr-Rohstücke der verschiedenen Längen (3000mm, 5000mm und 8000mm) verwendet werden. Wichtig ist: der Verschnitt soll minimal sein. Der Verschnitt ist das, was an angesägten Rohstücken am Ende übrigbleibt, wenn man seine 6 Rohrstücke á 2000mm fertig hat.
Diese auf den ersten Blick recht einfache Aufgabe ist beim genaueren Hinsehen doch eine etwas kompliziertere Angelegenheit. Da ich gestern nicht viel zu tun hatte, reizte mich diese Aufgabe und ich schrieb einen kleinen Algorithmus.
Hier gehts zum Script zum Ausprobieren.
Die verfügbaren Rohstücke müssen zeilenweise eingetragen werden.
Die Implementierung ist noch etwas unperformant. Vor Allem die Errechnung der möglichen Kombinationen gefällt mir noch nicht. Ich war bis jetzt jedoch zu faul mir was clevereres einfallen zu lassen.