ziegenmelker: aus Zeichenfolge alle möglichen Kombinationen ermitteln

Beitrag lesen

Hallo,

Kann mir jemand sagen, wie ich sowas programmiere:
Es soll eine sechsstellige zeichnekombination (z.b.: rgt645) angegeben werden. Dann sollen alle möglichen Kombinationen ermittelt werden und auf dem Bildschirm ausgegeben werden.

Weiß da jemand was. muss nicht per javascript sein, kann auch was anderes sein.

Danke
VG jp88

Deine unmögliche Art und Weise hier so zu drängeln, wurde ja schon ganz richtig von wahsaga angemerkt!

Hier mal ein möglicher gedanklicher Ansatz:

Mal dir die 6 Zeichen auf 6 Zettelchen.
Nimm das erste Zettelchen raus.
Mische die anderen Zettelchen bis du alle Kombinationen einmal hast. (*)
Nimm das erste Zettelchen und lege es vor jede der erhaltenen Kombinationen.
Nimm das zweite Zettelchen aus der ursprünglichen Reihenfolge raus.
Mache dasselbe wie zuvor mit dem ersten Zettelchen.

(*) Hier hast du die Möglichkeit rekursiv vorzugehen:

Von den 5 Zettelchen lege das erste Zettelchen raus.
Mische ...

Die Rekursion wird abgebrochen, wenn du nur noch zwei Zettelchen hast.

Rückgabe: (xy, yy)

Um die möglicherweise entstehenden "Doppelgänger" zu vermeiden, kannst du mit einem HASH arbeiten.
{abcdef -> abcdef}
Doppelte Strings eliminieren sich so selbst.
Ich glaube aber, dass keine Doppelgänger entstehen.

Probier das erst mal mit einer kurzen Zeichenfolge von 3 Zeichen aus und prüfe, ob das so auch funktioniert.

Aus f("abc") wird:

"a" + f("bc") => "abc", "acb"
"b" + f("ac") => "bac", "bca"
"c" + f("ab") => "cab", "cba"

Aus f("abcd") wird:

a + f("bcd")
b + f("acd")
c + f("abd")
d + f("abc")

Es gibt sicher noch andere, möglicherweise auch fertige und einfacherere Möglichkeiten, das Problem zu lösen.

cu,
Micha