Tarea
En el alfabeto de la lengua de la tribu «Tumba-Yumba» cuatro letras: "K", "L", "M" y "N". Es necesario mostrar en la pantalla todas las palabras que constan de n letras que se pueden construir a partir de las letras de este alfabeto
El problema es un problema normal de fuerza bruta que se puede reducir a un problema más pequeño.
Sustituiremos secuencialmente las letras por la palabra.
La primera posición de una palabra puede ser una de las 4 letras del alfabeto (
K, L, M, N).
Primero, coloque la letra '
K' primero. Luego, para obtener todas las variantes con la primera letra '
K', debe enumerar todas las combinaciones posibles de letras en el resto de
n-1 código> posiciones y .etc. (ver foto)
Por lo tanto, se nos ocurrió una solución recursiva: en un ciclo, pasar por todas las primeras letras posibles (poniendo cada letra del alfabeto en primer lugar) y para cada caso construir todas las "colas" posibles; longitud n-1
.
Iteración recursiva de caracteres
Debe detener la recursividad y generar la palabra terminada cuando la parte restante esté vacía (n = 0
), es decir todas las letras ya están seleccionadas.
El procedimiento recursivo se vería así:
def TumbaPalabras(palabra, alfabeto, n):
si n < 1:
imprimir (palabra)
devolver
para c en alfabeto:
TumbaPalabras(palabra+c, alfabeto, n - 1)