Module: (Python) Sous-programmes. récursivité


Problem

11/12

Itérer sur les lignes #1

Theory Click to read/hide

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

Problem

Dans l'alphabet de la langue de la tribu «tumba-yumba» quatre lettres : "K", "L", "M" et "N". Vous devez afficher tous les mots composés de lettres N  pouvant être construits à partir des lettres de cet alphabet.