Srtucture ensemble de mots

Résolu
memedplay Messages postés 4 Date d'inscription   Statut Membre Dernière intervention   -  
memedplay Messages postés 4 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
je suis étudiant en informatique, et je dois créer une structure de donnée que représente un "langage" au sens d'un ensemble de mots de longueur inférieur à un n donné et obtenue à partir d'un alphabet.

Ex : j'ai un alphabet A={a,b}
=>Langage L2={a, b, ab, ba, aa, bb} si n=2
=>Langage L3={a, b, ab, ba, aa, bb, aaa, aba, aab, abb, baa, bab, bba, bbb} si n=3

Je vois pas bien comment réalisé ça, si quelqu'un aurait une piste, une idée pour m'aider ce serait sympa.

merci
A voir également:

2 réponses

fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
Bonjour,

Le plus simple est d'utiliser un algorithme récursif.
Pour L1, ça fait {a,b}
Pour L2, ça fait L1+{aa, ab, ba, bb}
Pour L3, ça fait L2+{aaa, aab, ...}
...
Le plus dur est donc de calculer {aaa, aab, ...}
Tu peux utiliser un autre algorithme récursif (autre fonction) que t'appelleras autant de fois que le nombre i (Li).
Et dans cette fonction, tu renvoies en alternance a puis b. Je te laisse réfléchir sur ce point.

Voilà pour la piste ;-)
1
memedplay Messages postés 4 Date d'inscription   Statut Membre Dernière intervention  
 
Merci fiddy,

Ta solution semble être bonne mais je m'en sort plus dans les calcul quand je prend un alphabet très grand.

le calcul de Li devient super complexe...
0
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
Ce n'est pas à toi de faire le calcul mais à la machine.
C'est là l'intérêt de la récursivité. Tu expliques à ton programme la relation entre Li et L(i-1). Et tu donnes la formule de L1. Et voilou :-).
0
memedplay Messages postés 4 Date d'inscription   Statut Membre Dernière intervention  
 
J'ai réussi à résoudre mon problème.

Merci beaucoup fiddy.
0