Moin!
vielen Dank für Dein Post. Das ist auf jeden Fall ein Ansatz. Also ist es doch mit Permutation lösbar. Ich habe das Problem bloß von der falschen Richtung betrachtet, von den "Töpfen" anstatt von den Werten aus. Du gibst dem Wert quasi eine "TopfID" und kommst so zu den Kombinationen.
Allerdings habe ich viele Kombinationen doppelt. Beispielsweise sind bei AAAA, BBBB und CCCC so ja alle Elemente in einem Topf, die beiden anderen sind leer, die Kombination ist also die gleiche, siehst du eine Möglichkeit dies bei der Erzeugung der Permutation abzufangen?
Klingt irgendwie wie "Türme von Hanoi", zumindest optisch. :)
Diese Einschränkung der Duplikate bedeutet jedenfalls, dass man das Resultat (mit Dopplungen) noch "normalisieren" soll. Also: Töpfe nach "links" schieben. Im Endeffekt also den Topf mit den meisten Elementen als "A" bezeichnen, den mit den zweitmeisten als "B", und den mit den wenigsten als "C" (bei drei Töpfen).
Was wiederum für die Permutationen und die Verteilung auf die Töpfe bedeutet: Topf A hat mindestens soviele Elemente, wie Topf B. Topf B hat mindestens soviele Elemente wie Topf C. |A| >= |B| >= |C|
Das wiederum bedeutet, dass man eigentlich doch eher von den Elementen ausgehen muß. Am Anfang sind alle Elemente in Topf A. Dann wird eines der Elemente von A nach B getan, und ergibt eine neue Kombination. Für alle Elemente durchführen.
Das Element jetzt von B nach C tun ist verboten, weil |B|=0 >= |C|=1 nicht erfüllt wäre, also muß ein weiteres Element von A nach B getan werden. Das wieder für alle Kombinationen machen.
Jetzt darf ein Element von B nach C getan werden, weil danach |B|=1 >= |C|=1.
Und so weiter... :)
- Sven Rautenberg
"Love your nation - respect the others."