Laden...

Alle Kombinationen von Zeichen bis zu einer bestimmten Länge berechnen

Erstellt von freggeln vor 15 Jahren Letzter Beitrag vor 15 Jahren 1.468 Views
F
freggeln Themenstarter:in
37 Beiträge seit 2007
vor 15 Jahren
Alle Kombinationen von Zeichen bis zu einer bestimmten Länge berechnen

Ein Kollege und ich habe heute überlegt, wie man aus einem Array einen String beliebiger Länge bauen kann.

char[] zeichen = {'1', '2', '3', '4'}

Man definiert Länge von bspw. 3 und das Programm generiert automatisch alle Strings von 1 bis 444, also inkl. aller Zwischenschritte wie bspw. 123 oder 321.

Uns ist dafür keine passende Schleifenstruktur eingefallen.

Hat jemand ne Idee, wie man so etwas lösen kann?

Danke & Gruß

1.002 Beiträge seit 2007
vor 15 Jahren

Hallo freggeln,

fangt doch einfach mit "001" an und erhöht in einer Schleife immer die letzte Ziffer.
Sollte die aus dem Rahmen fallen, ruft ihr die Inkrement-Methode (rekursiv) mit der Ziffer vor der aktuell erhöhten Ziffer auf usw. Wenn du die erste Ziffer erhöhen würdest, brich die Rekusion ab.

m0rius

[EDIT]Geht natürlich bei "001" los ...[/EDIT]

Mein Blog: blog.mariusschulz.com
Hochwertige Malerarbeiten in Magdeburg und Umgebung: M'Decor, Ihr Maler für Magdeburg

F
freggeln Themenstarter:in
37 Beiträge seit 2007
vor 15 Jahren

Hmmm...aber es sollen ja auch bspw. 1, 2, 3, 4 und z.B. 23 ausgegeben werden, die hätte man ja so schon nicht.

Gruß

49.485 Beiträge seit 2005
vor 15 Jahren
F
freggeln Themenstarter:in
37 Beiträge seit 2007
vor 15 Jahren

Schon gut im Ansatz, allerdings wird damit ja auch nicht ganz das erreicht, was ich Eingangs beschrieben habe.

Nämlich das auf einer Reihe von Zeichen eine Zeichenkette von vorher definierter Länge gebildet wird und eben alle "Zwischenergebnisse" auch generiert werden.

Bei dieser Lösung werden ja nur alle Zeichen miteinander kombiniert, also bspw. bei Zahlen von 0-9 wird maximal eine 10-stellige Zahl ausgegeben.

Will man jetzt aber aus den Zahlen von 0-9 eine 15-stellige Zahl ausgegeben, dann geht es damit schon nicht mehr.

Wie gesagt es interessiert mich einfach nur, wie man so eine Schleife aufbauen müsste, praktisch dürfte sowas schon an fehlender Rechenpower, Plattenplatz und Zeit scheitern 😉

Gruß

49.485 Beiträge seit 2005
vor 15 Jahren

Hallo freggeln,

deine Einwände verstehe ich nicht, zumal du ja selbst schreibst, dass du dass dich nur interessiert, wie so eine "Schleife" aufgebaut wäre. Genau das zeigt ja das Snippet. Alles andere sind Detailänderungen, also z.B. die berechneten Kombinationen statt sie auszugeben in einer Liste zu sammeln. Und warum es mit 15 Stellen (abgesehen von Speicherplatz und Rechenzeit) nicht gehen sollte, ist mir auch unklar.

herbivore