Srtucture ensemble de mots

Résolu/Fermé
memedplay Messages postés 4 Date d'inscription lundi 10 décembre 2012 Statut Membre Dernière intervention 13 avril 2013 - 10 déc. 2012 à 13:19
memedplay Messages postés 4 Date d'inscription lundi 10 décembre 2012 Statut Membre Dernière intervention 13 avril 2013 - 14 déc. 2012 à 07:49
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

2 réponses

fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835
12 déc. 2012 à 00:33
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 lundi 10 décembre 2012 Statut Membre Dernière intervention 13 avril 2013
12 déc. 2012 à 21:56
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 samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835
12 déc. 2012 à 22:11
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 lundi 10 décembre 2012 Statut Membre Dernière intervention 13 avril 2013
14 déc. 2012 à 07:49
J'ai réussi à résoudre mon problème.

Merci beaucoup fiddy.
0