Génération de tous les mots d'un automate
Fermé
manou901
Messages postés
3
Date d'inscription
vendredi 29 août 2014
Statut
Membre
Dernière intervention
1 septembre 2014
-
29 août 2014 à 19:28
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 1 sept. 2014 à 17:59
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 1 sept. 2014 à 17:59
A voir également:
- Génération de tous les mots d'un automate
- Generateur mot de passe - Télécharger - Sécurité
- Supprimer tous les mots de passe chrome - Guide
- Mettre un mot de passe sur un dossier - Guide
- Trousseau mot de passe iphone - Guide
- Où trouver tous les mots de passe enregistrés ? - Guide
7 réponses
mx354
Messages postés
38
Date d'inscription
vendredi 29 août 2014
Statut
Membre
Dernière intervention
25 avril 2015
2
29 août 2014 à 19:35
29 août 2014 à 19:35
Sur siemens , On utilise une fonction call .. Existe t'il ça en C Je ne sais pas bien à toi
sambia39
Messages postés
610
Date d'inscription
vendredi 31 juillet 2009
Statut
Membre
Dernière intervention
9 février 2023
49
31 août 2014 à 22:54
31 août 2014 à 22:54
Bonsoir
C'est un peu vague ou j'ai très mal compris ce que tu voulais dire.
Que veux-tu dire par automate de génération de mots ? concrètement de plus, je pense que c'est à partir d'une séquence biologique que ton automate te fournit des mots donc, pour faire simple, c'est à toi de faire une table de correspondance à ses différentes séquences pour que ton automatique puisse te fournir un mot ou un ensemble de groupe de mots. sans avoir plus de détails en ne peut vraiment t'aider.
à bientôt
C'est un peu vague ou j'ai très mal compris ce que tu voulais dire.
Que veux-tu dire par automate de génération de mots ? concrètement de plus, je pense que c'est à partir d'une séquence biologique que ton automate te fournit des mots donc, pour faire simple, c'est à toi de faire une table de correspondance à ses différentes séquences pour que ton automatique puisse te fournir un mot ou un ensemble de groupe de mots. sans avoir plus de détails en ne peut vraiment t'aider.
à bientôt
manou901
Messages postés
3
Date d'inscription
vendredi 29 août 2014
Statut
Membre
Dernière intervention
1 septembre 2014
1 sept. 2014 à 01:58
1 sept. 2014 à 01:58
Bonsoir,
D'abord, je vais créer un automate avec expression régulière par exemple (a|b)c(g*). Puis, je vais générer tous les mots possibles de cet automate par exemple acg, acgg, bcgggg .... (je peux fixer une longueur maximale de mot si j'ai un boucle dans l'automate) .En fin, je vais insérer ces mots dans un tableau. J'espère j'ai bien expliqué le problème maintenant et merci.
D'abord, je vais créer un automate avec expression régulière par exemple (a|b)c(g*). Puis, je vais générer tous les mots possibles de cet automate par exemple acg, acgg, bcgggg .... (je peux fixer une longueur maximale de mot si j'ai un boucle dans l'automate) .En fin, je vais insérer ces mots dans un tableau. J'espère j'ai bien expliqué le problème maintenant et merci.
sambia39
Messages postés
610
Date d'inscription
vendredi 31 juillet 2009
Statut
Membre
Dernière intervention
9 février 2023
49
1 sept. 2014 à 12:04
1 sept. 2014 à 12:04
Bonjour
Comme je tes répondus sur un autre forum, regarde plus du côté des transductions c'est plus de ce côté-là que tu peux trouver ton bonheur
à bientôt
Comme je tes répondus sur un autre forum, regarde plus du côté des transductions c'est plus de ce côté-là que tu peux trouver ton bonheur
à bientôt
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
manou901
Messages postés
3
Date d'inscription
vendredi 29 août 2014
Statut
Membre
Dernière intervention
1 septembre 2014
1 sept. 2014 à 15:29
1 sept. 2014 à 15:29
Bonjour,
Je suis en train d'écrire un pseudo code avant de l'implémenter en C, voila ce que j'ai pensé de faire :
Si je fixe une longueur maximale de mot, je peux le faire par récursion : je pars du début de l'automate ; en faisant une boucle sur tous les branchements possibles, je rajoutes la transition aux mots que je veux créer, et j' appelles ma fonction récursive sur chaque état pointée par mes transitions. Si j'obtiens un mot de longueur plus grande qu'un entier que je définis, j'arrêtes la récursion et je ne renvoies pas le mot. Si j'arrives sur l'état final de l'automate, idem, mais je renvoies le mot.
J'ai pensé d'utiliser plutôt des listes chaînées.
je pense j'ai bien expliqué ou pas ?
a bientôt
Je suis en train d'écrire un pseudo code avant de l'implémenter en C, voila ce que j'ai pensé de faire :
Si je fixe une longueur maximale de mot, je peux le faire par récursion : je pars du début de l'automate ; en faisant une boucle sur tous les branchements possibles, je rajoutes la transition aux mots que je veux créer, et j' appelles ma fonction récursive sur chaque état pointée par mes transitions. Si j'obtiens un mot de longueur plus grande qu'un entier que je définis, j'arrêtes la récursion et je ne renvoies pas le mot. Si j'arrives sur l'état final de l'automate, idem, mais je renvoies le mot.
J'ai pensé d'utiliser plutôt des listes chaînées.
je pense j'ai bien expliqué ou pas ?
a bientôt
Salut, il faut que tu fasse une analyse récursive des composants (lettres) de tes mots.
Exemple: Soit la liste de lettres "a$" de longueur "n"
Soit "m" le nombre de lettre de tes mots
Soit: "#w.txt," Un textbox (retour à la ligne à chaque boucle)
Algo:
for i=1 to n
for j=i+1 to n
for k=j+1 to n
for m=k+1 to n-1
#w.txt,word$(a$,i);" ";word$(a$,j);" ";word$(a$,k);" ";word$(a$,m)
//mise en ligne des lettres (" "<--espace entre chaque) pour former le mot
//Syntaxe (word$...) en fonction du langage
next m
next k
next j
next i
Exemple: Soit la liste de lettres "a$" de longueur "n"
Soit "m" le nombre de lettre de tes mots
Soit: "#w.txt," Un textbox (retour à la ligne à chaque boucle)
Algo:
for i=1 to n
for j=i+1 to n
for k=j+1 to n
for m=k+1 to n-1
#w.txt,word$(a$,i);" ";word$(a$,j);" ";word$(a$,k);" ";word$(a$,m)
//mise en ligne des lettres (" "<--espace entre chaque) pour former le mot
//Syntaxe (word$...) en fonction du langage
next m
next k
next j
next i
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
1 sept. 2014 à 17:54
1 sept. 2014 à 17:54
Je ne vois pas le côté récursif...
C'est plutôt de l'itératif.
Cela fonctionne. Maintenant s'il doit générer toutes les combinaisons de 10 caractères. Ca va faire beaucoup de boucles for.
Et il faut plutôt faire for m=k+1 et non for m=1 pour générer toutes les possibilités.
C'est plutôt de l'itératif.
Cela fonctionne. Maintenant s'il doit générer toutes les combinaisons de 10 caractères. Ca va faire beaucoup de boucles for.
Et il faut plutôt faire for m=k+1 et non for m=1 pour générer toutes les possibilités.
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
1 sept. 2014 à 17:59
1 sept. 2014 à 17:59
Bonjour,
Effectivement, le plus simple est de le faire par récursivité.
L'idée est de faire une fonction qui prend en argument le mot généré en cours, la taille et l'indice (qui s'incrémente à chaque à sous-appel de la fonction).
Dans la fonction récursive, tu fais une seule boucle for (de 0 jusqu'à la longueur du mot souhaité) et tu appelles la fonction avec les différents paramètres et avec l'indice incrémenté de 1.
La condition d'arrêt est lorsque la taille est égal à l'indice.
Je te laisse réfléchir pour coder ça. N'hésite pas à poster ton code entre deux balises "code c" pour qu'on te corrige.
Exemple :
<"code c">/*ici tu mets ton code*/<"/code"> (sans les guillemets).
Cdlt,
Effectivement, le plus simple est de le faire par récursivité.
L'idée est de faire une fonction qui prend en argument le mot généré en cours, la taille et l'indice (qui s'incrémente à chaque à sous-appel de la fonction).
Dans la fonction récursive, tu fais une seule boucle for (de 0 jusqu'à la longueur du mot souhaité) et tu appelles la fonction avec les différents paramètres et avec l'indice incrémenté de 1.
La condition d'arrêt est lorsque la taille est égal à l'indice.
Je te laisse réfléchir pour coder ça. N'hésite pas à poster ton code entre deux balises "code c" pour qu'on te corrige.
Exemple :
<"code c">/*ici tu mets ton code*/<"/code"> (sans les guillemets).
Cdlt,