2011-02-09 3 views
0

모든 목록의 모든 조합을 여러 목록으로 작성하려고합니다. 나는 포함될 세 가지 매개 변수가 있습니다. 이들은 "And", "OR", "Equal"입니다.n 개의 문자열 조합

예를 들어, 나는 다음과 같은 세 가지 목록이 있습니다

목록을 1 : "인도", "중국", "이란"

목록 2 "힌디어", "영어" "중국어"

목록 3 : "숲", "사막", "강"

출력은

해야
 
India OR Hindi OR Forest 
India AND Hindi AND Forest 
India EQUAL Hindi EQUAL Forest 
India OR China OR Hindi 
India AND China AND Hindi 
India EQUAL China EQUAL Hindi 

Iran OR English OR River 
Iran AND English AND River 
Iran EQUAL English EQUAL River 

등등 ...

목록의 수와 목록에서 문자열의 수는 고정되어 있지 않습니다.

재귀 솔루션을 선호합니다.

+4

"C# !!!!를 사용하여 재귀 함수를 사용하는 것이 바람직합니다." 숙제처럼 들린다. 행운을 빕니다. – jason

+0

그렇다고해서 도움이되지 않는다는 것을 의미하지는 않습니다 ... –

+5

여기 더 좋은 수수께끼가 있습니다. 12 개의 질문 중 1 개의 대답을 수락했습니다. 클릭하는 가장 효율적인 방법은 무엇입니까? –

답변

1

먼저 단어 조합을 만들고 마지막 단계로 각 키워드를 적용해야한다고 생각합니다.

현재 목록의 각 항목에 대해 목록에 마지막으로 모든 키워드를 삽입하는 경우 다음 단어 목록을 최신으로 재연합니다.

0

단순히 순열을 만들려고합니다. Donald E Knuth의 "The Art of Computer Programming Volume 4"는이 이론을 읽을 때 좋은 곳이 될 것입니다. 솔루션으로 시작해야 할 부분을 생각할 수 없다면 (나는 이것이 다른 것처럼 보입니다. 일부 숙제 - 특히 재귀 참조에서 왜 재귀를 원합니까?) 볼륨 4에서는 Fascicle 2 "모든 튜플 및 순열 생성"과 Fascicle 3 "모든 조합 및 분할 생성"을 원합니다.

반복적으로 접근하고 재귀 적으로 접근하지 않을 것입니다. 그렇다면 결과의 각 "공간"에 대한 각 옵션을 반복하는 간단한 사례입니다. 왜 재귀가 필요한가요? 재귀는 오버 헤드 imho 만 추가합니다.

+0

사실 반복 버전을보고 싶습니다. – UncleBens

관련 문제