Tâche
Dans l'alphabet de la langue de la tribu «Tumba-Yumba» quatre lettres : "K", "L", "M" et "N". Il est nécessaire d'afficher à l'écran tous les mots composés de n lettres pouvant être construits à partir des lettres de cet alphabet
Le problème est un problème normal de force brute qui peut être réduit à un problème plus petit.
Nous substituerons séquentiellement des lettres au mot.
La première position d'un mot peut être l'une des 4 lettres de l'alphabet (
K, L, M, N).
Tout d'abord, mettez la lettre "
K" en premier. Ensuite, afin d'obtenir toutes les variantes avec la première lettre "
K", vous devez énumérer toutes les combinaisons possibles de lettres dans le
n-1 restant code> positions et .etc. (voir l'image)
Ainsi, nous avons trouvé une solution récursive : dans une boucle, parcourir toutes les premières lettres possibles (en mettant tour à tour chaque lettre de l'alphabet en premier) et pour chaque cas construire toutes les "queues" possibles ; longueur n-1
.
Itération récursive de caractères
Vous devez arrêter la récursivité et sortir le mot fini lorsque la partie restante est vide (n = 0
), c'est-à-dire toutes les lettres sont déjà sélectionnées.
La procédure récursive ressemblerait à ceci :
def TumbaWords(mot, alphabet, n):
si n < 1:
imprimer (mot)
retour
pour c dans l'alphabet :
TumbaMots(mot+c, alphabet, n - 1)