Array partitionieren
-
Hallo, ich hatte vor, einen Algorithmus zu implementieren, der sämtliche Mengenpartitionen berechnet.
Wenn ich zu einer Menge einen Array gleicher Länge erzeuge, und dann binär durchzähle, was einer Partition entspricht, klappt es nicht ganz:
0000=(1234)
0001=(123)(4)
0010=(12)(3)(4)
0011=(12)(34)
0100=(1)(2)(34)
0101=(1)(2)(3)(4)
0110=(1)(23)(4)
0111=(1)(234)soweit so gut. jedoch fehlen einige Partitionen:
(1)(3)(24) zb
würde ich weiter zählen, kämen zu viele Lösungen:
1000=(1)(234)=0111Ich habe auch stundenlang gegoogelt aber nichts gefunden, wie ich es besser machen könnte, deswegen versuche ich mein Glück mal hier.
-
Würdest du weiterzählen, kämen lediglich die bereits gefundenen Partition noch einmal, in umgekehrter Reihenfolge.
Überleg dir doch mal wie dein Algorithmus arbeitet (um nicht "funktioniert" zu sagen), und versuch den Binärstring für {{1}, {3}, {24}} zu konstruieren...
-
vielen dank für die antwort. ich weiß, dass sie in umgekehrter reihenfolge nochmal kommen.
ich habe stunden und tage überlegt, den algorithmus zerlegt umgeformt kombiniert mit anderen algorithmen, jedoch ohne erfolg.
-
ich habe eine lösung gefunden, kann geschlossen werden.