Module: (Python) 서브루틴. 재귀


Problem

11/12

라인 #1 반복

Theory Click to read/hide

과제
"Tumba-Yumba" 부족 언어의 알파벳으로; 네 글자: "K", "L", "M" 및 "N". 이 알파벳의 문자로 만들 수 있는 n개의 문자로 구성된 모든 단어를 화면에 표시해야 합니다

문제는 더 작은 문제로 축소될 수 있는 일반적인 무차별 대입 문제입니다.
단어를 순차적으로 문자로 대체합니다.
단어의 첫 번째 위치는 알파벳 4자(K, L, M, N) 중 하나일 수 있습니다.
먼저 문자 'K'를 먼저 입력합니다. 그런 다음 첫 번째 문자 'K'로 모든 변형을 가져오려면 나머지 n-1 위치 및 .etc. (그림 참조)
따라서 우리는 재귀 솔루션을 생각해 냈습니다. 루프에서 가능한 모든 첫 글자를 살펴보고 (알파벳의 각 글자를 처음에 차례로 배치) 각 경우에 대해 가능한 모든 "꼬리"를 만듭니다. 길이 <코드>n-1.
 
문자 반복 반복
나머지 부분이 비어 있을 때(n = 0), 즉, 재귀를 중지하고 완성된 단어를 출력해야 합니다. 모든 문자가 이미 선택되었습니다. 
재귀 절차는 다음과 같습니다.  <예비> def TumbaWords(단어, 알파벳, n): n < 1: 인쇄(단어) 반품 알파벳 c의 경우: TumbaWords(단어+c, 알파벳, n - 1)

Problem

"tumba-yumba" 부족 언어의 알파벳으로; 네 글자: "K", "L", "M" 및 "N". 이 알파벳의 문자로 만들 수 있는 N 문자로 구성된 모든 단어를 표시해야 합니다.