Hello,
Außerdem wissen wir die Anzahl der gewünschten Spalten, sodass wir, wie Du bereits beschrieben hast, mit AnzahlEinträgeGesamt geteilt durch AnzahlderSpalten den optimalen Wert pro Spalte errechnen können.
Versuchen wir's mit ein bisschen Pseudo-Code:
- Wir setzen eine Variable Summe
- Durchlaufe das Buchstaben Array
- Wenn Summe + aktuelleAnzahldesBuchstaben < BesterWert:
Summe = Summe + aktuelleAnzahldesBuchstaben- Sonst wenn Summe + aktuelleAnzahldesBuchstaben > BesterWert:
wenn BesterWert - Summe > Summe + aktuelleAnzahldesBuchstaben - BesterWert:
Die beste Lösung ist die MIT dem aktuellen Buchstaben
sonst:
Die beste Lösung ist die OHNE den aktuellen Buchstaben- Sonst:
Wir haben sogar die optimale Länge erreicht, können die Schleife abbrechen.- Ende der Schleife
- Lösche die nun verwendeten Buchstaben aus dem Array, durchlaufe das Buchstaben-Array erneut und berechne für die nächste Spalte.
Ich weiß, das hört sich alles etwas kryptisch an. Aber vielleicht finden wir eine Lösung. Diese hier könnte schon ganz gut funktionieren, allerdings weiß ich nicht genau, wie es sich dann mit der letzten Spalte verhält. Die könnte, so wie ich das sehe, um einiges größer oder kleiner sein als die anderen.
Die Reihenfolge der Buschstaben liegt ja fest. Also ist es kein Sortier-, sondern ein Verteilproblem.
Die Anzahl der Einträge Gesamt ist bekannt.
Die Anzahl der gewünschten Spalten ist bekannt.
Bei optimaler Verteilung wären dann alle Spalten gelich lang, was aber in der Realität nicht zu erwarten ist.
Legen wir als Randbedingung fest, dass innerhalb einer Gruppe (erstmal) kein Umbruch stattfinden soll. Ist diese Bedingung erfüllbar? Wenn nein: Sonderregel festlegen!
Wenn ja, nächste Gruppe aufrücken lassen und feststellen, ob die Gesmatlänge der Spalte innerhalb der optimalen (+ Toleranz) liegt.
Das Verfahren mit dem Aufrücken dann solange wiederholen, bis die maximale Abweichung von der optimalen Länge ihr Minimum erreicht.
Ggf. noch Sonderregel für letzte Spalte (Schusterjungen, etc.) beachten.
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg