2017-04-25 15 views
1

이 질문은 반복하지 않는 변이의 주제에 관한 것입니다. (예, 조사를했는데, 내 작업에 매우 독특한 문제에 대한 통찰력이 필요합니다.)꼬임으로 조합과 변이 생성하기 #

본질적으로 나는 5 자리 문자열의 가능한 모든 변형을 찾아서 그 문자열을 목록에 추가하는 루틴을 작성해야합니다. 내 문제는 까다로운 점은 문자열의 처음 3 자리는 0-7의 8 진수이고 문자열의 마지막 두 자리는 0-7 또는 A-Z * (문자 I 및 ​​O 제외)입니다.

제 연구를 통해 8 진수 세트와 영숫자 세트의 개별 조합을 생각해 냈습니다. 또한 디버거에 조합을 표시하여 작동하는지 확인합니다.

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)); 
     } 
    } 

내 주요 문제는 내가 처음 세 자리 8 진수이며, 마지막 두 영숫자 조합 중 하나 개 목록을 생성하는 방법을 알아낼 수 없다는 것입니다. 두 번째 문제는 생성 한 후에 목록에 조합을 추가하는 데 문제가 있다는 것입니다.

나는 계속해서 내 일을 할 것이지만, 내 자신보다 경험이 많은 사람의 통찰력이 내 문제를 푸는 데 도움이 될 것이라고 생각했습니다.

도움을 주시면 감사하겠습니다.

답변

0

내가 문제를 이해한다면 올바르게 3 OCT 모두 다음 I 및 O.

을 제외한 그룹 0-7 AZ에서이 개 요소로 시작하는 모든 가능한 문자열을 만들려면 당신이 개 루프가 필요합니다 같은이 소리, 하나는 000에서 777 사이의 각 옥텟 번호를 만들고, 두 번째 내부 루프는 2 개의 요소 부분을 추가합니다. 중첩 루프 여기 https://www.tutorialspoint.com/csharp/csharp_nested_loops.htm

string.Join를 참조하십시오 ("", 절) 필요하지 않습니다, 단지 수행합니다 (문자열) 절

+0

는 그래서 둥지 경우하면 영숫자 문자 루프, 그 날을 허용합니다 8 진수 세트 (000-777)와 영숫자 세트 (00-ZZ)의 모든 조합을 찾아 하나의 문자열로 표시 하시겠습니까? 나는 모든 8 진법과 모든 알파 조합의 목록을 별도로 생성한다. 또한 join ("", vv)없이 해당 캐스트를 사용하려고했는데 오류가 발생합니다. – kdun0508

+0

예, 당신은 항상 000과 같이 8 진수를 만들 수 있습니다. 그런 다음 모든 영숫자를 입력하면 두 번째 8 진수를 사용하고 모든 영숫자를 다시 수행합니다. – Master117

+0

좋아요, 위에 게시 한 코드에서 첫 번째 foreach 루프는 8 진수를 만듭니다. 그 후에 나는 말하기에 문제가있는 문법이 현명하다. ..... 이제는 000이라는 문자를 가지기 때문에 영숫자 문자의 모든 조합을 표시하고 싶다. 코드에서 그렇게하는 방법에 대해 약간 설명해 주시겠습니까? – kdun0508