2017-04-25 4 views
1

Diese Frage ist zum Thema Variations ohne Wiederholung (Ja, ich habe Forschung, ich brauche nur ein wenig Einblick in ein Problem, das sehr einzigartig für meine Aufgabe ist).Generieren von Kombinationen und Variationen mit einem Twist C#

Im Wesentlichen wurde ich damit beauftragt, eine Routine zu schreiben, die alle möglichen Variationen einer 5-stelligen Zeichenfolge findet und diese Zeichenfolgen dann zu einer Liste hinzufügt. Das Schwierige an meinem Problem ist, dass die ersten 3 Ziffern in der Zeichenkette Oktalzahlen 0-7 sind und die letzten beiden Ziffern in der Zeichenkette eine alphanumerische Darstellung 0-7 oder A-Z * sind (ausgenommen die Buchstaben I und O).

Durch meine Recherchen konnte ich verschiedene Kombinationen des Oktalsets und des alphanumerischen Sets entwickeln. Ich zeige auch die Kombinationen dem Debugger an, nur um sicherzustellen, dass es funktioniert.

static void Main() 
    { 
     string[] octalset = { "0", "1","2","3","4","5","6","7" }; 

     List<string> tracknum15 = new List<string>(); 
     List<string> tracknum19 = new List<string>(); 

     var v = new Variations<string>(octalset,3,GenerateOption.WithRepetition); 

     foreach (var vv in v) 
     { 

      System.Diagnostics.Debug.WriteLine(string.Join("", vv)); 
      tracknum15.Add(vv); 
     } 

     string[] alphanumericset = { "0", "1", "2", "3", "4", "5", "6", "7", "A", "B", "C", "D", "E", "F", "G", "H", "J", "K", "L", "M", "N", "P", "Q", "S", "T", "U", "V", "W", "X", "Y", "Z" }; 

     var a = new Variations<string>(alphanumericset, 2, GenerateOption.WithRepetition); 

     foreach (var aa in a) 
     { 
      System.Diagnostics.Debug.WriteLine(string.Join("", aa)); 
     } 
    } 

Mein Hauptproblem ist, dass ich nicht herausfinden kann, wie man die Liste von Kombinationen zu erzeugen, wobei die ersten drei Ziffern sind Oktal und die letzten beiden sind alphanumerische. Das zweite Problem ist, dass ich Probleme habe, meine Kombinationen zu einer Liste hinzuzufügen, nachdem ich sie erstellt habe.

Ich werde fortfahren, auf eigene Faust zu arbeiten, aber ich dachte, Einsicht von jemand erfahrener als ich wäre hilfreich bei der Lösung meines Problems.

Jede Hilfe wird geschätzt!

Antwort

0

Wenn ich verstehe Ihr Problem richtig wollen Sie jede mögliche Zeichenfolge erstellen mit 3 ULG beginnen und dann 2 Elemente aus der Gruppe 0-7 AZ ohne I und O.

Das klingt wie Sie 2 Schleifen benötigen, eine erzeugt jede Oktanzahl von 000 bis 777 und eine zweite innere Schleife fügt deinen 2-Elementteil hinzu. Sehen Sie hier für verschachtelte Schleifen, https://www.tutorialspoint.com/csharp/csharp_nested_loops.htm

string.Join ("", vv) ist nicht erforderlich, nur tun: (string) vv

+0

Also, wenn ich Nest der for-Schleife für die alphanumerischen Zeichen, die mir erlauben, um jede Kombination des Octal Sets (000-777) und des alphanumerischen Sets (00-ZZ) zu finden und als eine Saite darzustellen? Ich erzeuge bereits eine Liste aller oktalen und aller Alpha-Kombinationen separat. Außerdem habe ich versucht, diesen Cast ohne Join ("", vv) zu benutzen und es gibt mir einen Fehler. – kdun0508

+0

yeah, du kannst immer 1 Oktal, wie 000, und dann alle alphanumerischen Zeichen erstellen, dann machst du das zweite Oktal und machst alle alphanumerischen Zeichen erneut – Master117

+0

Okay, in dem Code, den ich oben gepostet habe Die erste foreach-Schleife erzeugt die Oktalzahlen. Danach habe ich Probleme mit der Syntax, wie ich sagen soll ... jetzt, da ich 000 habe, möchte ich jede Kombination der alphanumerischen Zeichen anzeigen, die dazu gehören. Können Sie ein wenig erläutern, wie Sie das im Code machen würden? – kdun0508

Verwandte Themen