Zum Inhalt springen

Array, Permutation, Kombinationen


Robert Neville

Empfohlene Beiträge

Hallo Zusammen,

ich habe eine für mich unlösbare Aufgabe und hoffe auf Hilfen.

Hier mein Problem:

Dim Werteliste As String

Werteliste = "1 Stück~2 Stück~3 Stück|CD-Rom~Download|Rot~Blau~Grün|S~M~L~XL"

In dieser Werteliste sind "Merkmale" (Menge, Datenträger, Farbe,Größen) voneinander mit dem Symbol Pipe '|' getrennt. Jedes Merkmal hat dann Ausprägungen (Rot, Blau, Grün, ...) die durch Tilde '~' getrennt werden.

Ich benötige nun eine rekursive Funktion, die mir alle möglichen Varianten erzeugt.

Alle meine Ansätze verlaufen im Sand und bringen entweder ein falsche Ergebnis oder es werden nicht alle möglichen Kombinationen geliefert.

Ansatz:

Dim i As Long

Dim Arr_Werteliste() As String

Dim Arr() As String

Arr_Werteliste() = Split(Werteliste, "|")

Arr() = Split(Arr_Werteliste(counter), "~")

Wie muss nun die Rekursive Schleife aufgebaut sein und mit welchen Parametern muss diese sich selbst wieder aufrufen, um an das Ergnis zu gelangen?

Hat jemand einen Rat, Funktion oder Idee?

Vielen Dank für Eure Bemühungen im Voraus!

Diese Funktion müsste folgendes Ausgeben:

1 Stück, CD-Rom, Rot, S

2 Stück, CD-Rom, Rot, S

3 Stück, CD-Rom, Rot, S

1 Stück, Download, Rot, S

2 Stück, Download, Rot, S

3 Stück, Download, Rot, S

1 Stück, CD-Rom, Blau, S

2 Stück, CD-Rom, Blau, S

3 Stück, CD-Rom, Blau, S

1 Stück, Download, Blau, S

2 Stück, Download, Blau, S

3 Stück, Download, Blau, S

1 Stück, CD-Rom, Grün, S

2 Stück, CD-Rom, Grün, S

3 Stück, CD-Rom, Grün, S

1 Stück, Download, Grün, S

2 Stück, Download, Grün, S

3 Stück, Download, Grün, S

1 Stück, CD-Rom, Rot, M

2 Stück, CD-Rom, Rot, M

3 Stück, CD-Rom, Rot, M

1 Stück, Download, Rot, M

2 Stück, Download, Rot, M

3 Stück, Download, Rot, M

1 Stück, CD-Rom, Blau, M

2 Stück, CD-Rom, Blau, M

3 Stück, CD-Rom, Blau, M

1 Stück, Download, Blau, M

2 Stück, Download, Blau, M

3 Stück, Download, Blau, M

1 Stück, CD-Rom, Grün, M

2 Stück, CD-Rom, Grün, M

3 Stück, CD-Rom, Grün, M

1 Stück, Download, Grün, M

2 Stück, Download, Grün, M

3 Stück, Download, Grün, M

1 Stück, CD-Rom, Rot, L

2 Stück, CD-Rom, Rot, L

3 Stück, CD-Rom, Rot, L

1 Stück, Download, Rot, L

2 Stück, Download, Rot, L

3 Stück, Download, Rot, L

1 Stück, CD-Rom, Blau, L

2 Stück, CD-Rom, Blau, L

3 Stück, CD-Rom, Blau, L

1 Stück, Download, Blau, L

2 Stück, Download, Blau, L

3 Stück, Download, Blau, L

1 Stück, CD-Rom, Grün, L

2 Stück, CD-Rom, Grün, L

3 Stück, CD-Rom, Grün, L

1 Stück, Download, Grün, L

2 Stück, Download, Grün, L

3 Stück, Download, Grün, L

1 Stück, CD-Rom, Rot, XL

2 Stück, CD-Rom, Rot, XL

3 Stück, CD-Rom, Rot, XL

1 Stück, Download, Rot, XL

2 Stück, Download, Rot, XL

3 Stück, Download, Rot, XL

1 Stück, CD-Rom, Blau, XL

2 Stück, CD-Rom, Blau, XL

3 Stück, CD-Rom, Blau, XL

1 Stück, Download, Blau, XL

2 Stück, Download, Blau, XL

3 Stück, Download, Blau, XL

1 Stück, CD-Rom, Grün, XL

2 Stück, CD-Rom, Grün, XL

3 Stück, CD-Rom, Grün, XL

1 Stück, Download, Grün, XL

2 Stück, Download, Grün, XL

3 Stück, Download, Grün, XL

Link zu diesem Kommentar
Auf anderen Seiten teilen

Wie muss nun die Rekursive Schleife aufgebaut sein und mit welchen Parametern muss diese sich selbst wieder aufrufen, um an das Ergnis zu gelangen?

Du widersprichst Dir hier selbst, eine rekursive Funktion ist keine Schleife.

Ich benötige nun eine rekursive Funktion, die mir alle möglichen Varianten erzeugt.

Es ist doch bei dieser Sache völlig unerheblich welchen Seperator Du nimmst, wenn Du alle Kombinationen brauchst.

Wenn ich den String "a-b-c" habe, erhalte ich 2^3 Möglichkeiten diese Zeichen zu kombinieren. Man kann das durch Permutation erzeugen:

Ich lasse das erste Element unangetastet und permutiere die restliche Folge, wobei der erste Schritt eine Permutation der gesamten Folge ist.

Phil

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...